Pārlūkot izejas kodu

removed the whole mod-service thing

master
XeonSquared pirms 8 mēnešiem
vecāks
revīzija
0928241895
4 mainītis faili ar 1 papildinājumiem un 184 dzēšanām
  1. 1
    0
      .gitignore
  2. 0
    8
      mkmods.sh
  3. 0
    88
      mod-service/microtel-3.lua
  4. 0
    88
      module/microtel-3.lua

+ 1
- 0
.gitignore Parādīt failu

@@ -0,0 +1 @@
/build

+ 0
- 8
mkmods.sh Parādīt failu

@@ -1,8 +0,0 @@
#!/bin/bash
for f in service/*; do
nf=$(echo $f | cut -d '/' -f 2)
echo $nf
echo os.spawn\(function\(\) >mod-service/$nf
cat $f >> mod-service/$nf
echo end,\"$nf\"\) >> mod-service/$nf
done

+ 0
- 88
mod-service/microtel-3.lua Parādīt failu

@@ -1,88 +0,0 @@
os.spawn(function()
_G.net={}

do
local modems,packetQueue,packetCache,routeCache,C,Y = {},{},{},{},COMPUTER,UNPACK
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)
modems[a].open(net.port)
end

local function genPacketID()
local packetID = ""
for i = 1, 16 do
packetID = packetID .. string.char(math.random(32,126))
end
return packetID
end

local function rawSendPacket(packetID,packetType,to,from,vport,data)
if routeCache[to] then
modems[routeCache[to][1]].send(routeCache[to][2],net.port,packetID,packetType,to,from,vport,data)
else
for k,v in pairs(modems) do
v.broadcast(net.port,packetID,packetType,to,from,vport,data)
end
end
end

local function sendPacket(packetID,packetType,to,vport,data)
packetCache[packetID] = computer.uptime()
rawSendPacket(packetID,packetType,to,net.hostname,vport,data)
end

function net.send(to,vport,data,packetType,packetID)
packetType,packetID = packetType or 1, packetID or genPacketID()
packetQueue[packetID] = {packetType,to,vport,data,0}
sendPacket(packetID,packetType,to,vport,data)
end

local function checkCache(packetID)
for k,v in pairs(packetCache) do
if k == packetID then
return false
end
end
return true
end

while true do
local eventTab = {coroutine.yield()}
if eventTab[1] == "modem_message" and (eventTab[4] == net.port or eventTab[4] == 0) and checkCache(eventTab[6]) then
for k,v in pairs(packetCache) do
if computer.uptime() > v+30 then
packetCache[k] = nil
end
end
for k,v in pairs(routeCache) do
if computer.uptime() > v[3]+30 then
routeCache[k] = nil
end
end
routeCache[eventTab[9]] = {eventTab[2],eventTab[3],computer.uptime()}
if eventTab[8] == net.hostname then
if eventTab[7] ~= 2 then
computer.pushSignal("net_msg",eventTab[9],eventTab[10],eventTab[11])
if eventTab[7] == 1 then
sendPacket(genPacketID(),2,eventTab[9],eventTab[10],eventTab[6])
end
else
packetQueue[eventTab[11]] = nil
end
elseif net.route and checkCache(eventTab[6]) then
rawSendPacket(eventTab[6],eventTab[7],eventTab[8],eventTab[9],eventTab[10],eventTab[11])
end
packetCache[eventTab[6]] = computer.uptime()
end
for k,v in pairs(packetQueue) do
if computer.uptime() > v[5] then
sendPacket(k,table.unpack(v))
v[5]=computer.uptime()+30
end
end
end

end
end,"microtel-3.lua")

+ 0
- 88
module/microtel-3.lua Parādīt failu

@@ -1,88 +0,0 @@
_G.net={}

do
local modems,packetQueue,packetCache,routeCache,C,Y = {},{},{},{},COMPUTER,UNPACK
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)
modems[a].open(net.port)
end

local function genPacketID()
local packetID = ""
for i = 1, 16 do
packetID = packetID .. string.char(math.random(32,126))
end
return packetID
end

local function rawSendPacket(packetID,packetType,to,from,vport,data)
if routeCache[to] then
modems[routeCache[to][1]].send(routeCache[to][2],net.port,packetID,packetType,to,from,vport,data)
else
for k,v in pairs(modems) do
v.broadcast(net.port,packetID,packetType,to,from,vport,data)
end
end
end

local function sendPacket(packetID,packetType,to,vport,data)
packetCache[packetID] = computer.uptime()
rawSendPacket(packetID,packetType,to,net.hostname,vport,data)
end

function net.send(to,vport,data,packetType,packetID)
packetType,packetID = packetType or 1, packetID or genPacketID()
packetQueue[packetID] = {packetType,to,vport,data,0}
sendPacket(packetID,packetType,to,vport,data)
end

local function checkCache(packetID)
for k,v in pairs(packetCache) do
if k == packetID then
return false
end
end
return true
end

os.spawn(function()
while true do
local eventTab = {coroutine.yield()}
if eventTab[1] == "modem_message" and (eventTab[4] == net.port or eventTab[4] == 0) and checkCache(eventTab[6]) then
for k,v in pairs(packetCache) do
if computer.uptime() > v+30 then
packetCache[k] = nil
end
end
for k,v in pairs(routeCache) do
if computer.uptime() > v[3]+30 then
routeCache[k] = nil
end
end
routeCache[eventTab[9]] = {eventTab[2],eventTab[3],computer.uptime()}
if eventTab[8] == net.hostname then
if eventTab[7] ~= 2 then
computer.pushSignal("net_msg",eventTab[9],eventTab[10],eventTab[11])
if eventTab[7] == 1 then
sendPacket(genPacketID(),2,eventTab[9],eventTab[10],eventTab[6])
end
else
packetQueue[eventTab[11]] = nil
end
elseif net.route and checkCache(eventTab[6]) then
rawSendPacket(eventTab[6],eventTab[7],eventTab[8],eventTab[9],eventTab[10],eventTab[11])
end
packetCache[eventTab[6]] = computer.uptime()
end
for k,v in pairs(packetQueue) do
if computer.uptime() > v[5] then
sendPacket(k,table.unpack(v))
v[5]=computer.uptime()+30
end
end
end
end,"minitel.3")

end

Notiek ielāde…
Atcelt
Saglabāt