mirror of
https://github.com/kepler155c/opus
synced 2025-12-18 14:18:06 +00:00
Initial commit
This commit is contained in:
66
sys/services/network.lua
Normal file
66
sys/services/network.lua
Normal file
@@ -0,0 +1,66 @@
|
||||
require = requireInjector(getfenv(1))
|
||||
local Util = require('util')
|
||||
|
||||
multishell.setTitle(multishell.getCurrent(), 'Net Daemon')
|
||||
|
||||
_G.network = { }
|
||||
|
||||
local function netUp()
|
||||
local process = require('process')
|
||||
|
||||
local files = fs.list('/sys/network')
|
||||
|
||||
for _,file in pairs(files) do
|
||||
local fn, msg = loadfile('/sys/network/' .. file, getfenv())
|
||||
if fn then
|
||||
fn()
|
||||
else
|
||||
printError(msg)
|
||||
end
|
||||
end
|
||||
|
||||
while true do
|
||||
local e = process:pullEvent('device_detach')
|
||||
if not device.wireless_modem or e == 'terminate' then
|
||||
for _,c in pairs(network) do
|
||||
c.active = false
|
||||
os.queueEvent('network_detach', c)
|
||||
end
|
||||
os.queueEvent('network_down')
|
||||
process:pullEvent('network_down')
|
||||
process:threadEvent('terminate')
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
Util.clear(_G.network)
|
||||
end
|
||||
|
||||
print('Net daemon started')
|
||||
|
||||
local function startNetwork()
|
||||
print('Starting network services')
|
||||
|
||||
local success, msg = Util.runFunction(
|
||||
Util.shallowCopy(getfenv(1)), netUp)
|
||||
|
||||
if not success and msg then
|
||||
printError(msg)
|
||||
end
|
||||
print('Network services stopped')
|
||||
end
|
||||
|
||||
if device.wireless_modem then
|
||||
startNetwork()
|
||||
else
|
||||
print('No modem detected')
|
||||
end
|
||||
|
||||
while true do
|
||||
local e, deviceName = os.pullEvent('device_attach')
|
||||
if deviceName == 'wireless_modem' then
|
||||
startNetwork()
|
||||
end
|
||||
end
|
||||
|
||||
print('Net daemon stopped')
|
||||
Reference in New Issue
Block a user