37 lines
981 B
Lua
37 lines
981 B
Lua
local component = require("component")
|
|
local minitel = require("minitel")
|
|
|
|
local function loadConf()
|
|
local f = io.open("/etc/ocnet.conf", "r")
|
|
if not f then
|
|
return { gateway = "home", port = 5353 }
|
|
end
|
|
local txt = f:read("*a"); f:close()
|
|
local ok, t = pcall(load("return " .. txt))
|
|
if ok and type(t) == "table" then
|
|
if not t.gateway then t.gateway = "home1" end
|
|
if not t.port then t.port = 5353 end
|
|
return t
|
|
end
|
|
return { gateway = "home1", port = 5353 }
|
|
end
|
|
|
|
local conf = loadConf()
|
|
|
|
local f = io.open("/etc/hostname", "r")
|
|
local hostname = f and f:read("*l") or "unknown"
|
|
if f then f:close() end
|
|
|
|
local modemUUID
|
|
for addr in component.list("modem") do
|
|
modemUUID = addr
|
|
break
|
|
end
|
|
|
|
if not modemUUID then
|
|
io.stderr:write("[ocnet] kein modem gefunden\n")
|
|
return
|
|
end
|
|
|
|
print(string.format("[ocnet] REG %s (%s) -> %s:%d", hostname, modemUUID, conf.gateway, conf.port))
|
|
minitel.usend(conf.gateway, conf.port, "REG " .. hostname .. " " .. modemUUID) |