Fix fccid beacon (#717)

This commit is contained in:
Tim Wilkinson 2023-02-17 21:06:04 -08:00 committed by GitHub
parent 61fa802f80
commit 32e02de328
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 46 additions and 34 deletions

View File

@ -34,20 +34,32 @@
--]]
local socket = require("socket")
function fccid()
local id = string.format("ID: %s", capture("uname -n"))
local ip = uci.cursor():get("network", "wifi", "ipaddr")
local udp = socket.udp()
udp:setoption("broadcast", true)
udp:setsockname(ip, 4919)
--udp:setpeername("10.255.255.255", 4919)
local c = uci.cursor()
local device = get_ifname("wifi")
local name = c:get("system","@system[0]", "hostname")
local lat = c:get("aredn", "@location[0]", "lat")
local lon = c:get("aredn", "@location[0]", "lon")
if not (name and device:match("^wlan")) then
exit_app()
return
end
local id = "ID: " .. name
if lat and lon then
id = id .. " LOCATION: " .. lat .. "," .. lon
end
local udp = nixio.socket("inet", "dgram")
udp:setopt("socket", "broadcast", 1)
udp:setopt("socket", "bindtodevice", device)
udp:bind(nil, 4919)
while true
do
if nixio.fs.stat("/etc/config/run-fccid") then
udp:sendto(id, "10.255.255.255", 4919)
end
wait_for_ticks(5 * 60) -- 5 minutes
end
end