diff --git a/files/usr/local/bin/mgr/fccid.lua b/files/usr/local/bin/mgr/fccid.lua index 1f1e8599..76aad5aa 100644 --- a/files/usr/local/bin/mgr/fccid.lua +++ b/files/usr/local/bin/mgr/fccid.lua @@ -1,53 +1,65 @@ --[[ - Part of AREDN -- Used for creating Amateur Radio Emergency Data Networks - Copyright (C) 2021 Tim Wilkinson - Original Shell Copyright (C) 2015 Conrad Lara - See Contributors file for additional contributors + Part of AREDN -- Used for creating Amateur Radio Emergency Data Networks + Copyright (C) 2021 Tim Wilkinson + Original Shell Copyright (C) 2015 Conrad Lara + See Contributors file for additional contributors - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation version 3 of the License. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation version 3 of the License. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU General Public License + along with this program. If not, see . - Additional Terms: + Additional Terms: - Additional use restrictions exist on the AREDN(TM) trademark and logo. - See AREDNLicense.txt for more info. + Additional use restrictions exist on the AREDN(TM) trademark and logo. + See AREDNLicense.txt for more info. - Attributions to the AREDN Project must be retained in the source code. - If importing this code into a new or existing project attribution - to the AREDN project must be added to the source code. + Attributions to the AREDN Project must be retained in the source code. + If importing this code into a new or existing project attribution + to the AREDN project must be added to the source code. - You must not misrepresent the origin of the material contained within. + You must not misrepresent the origin of the material contained within. - Modified versions must be modified to attribute to the original source - and be marked in reasonable ways as differentiate it from the original - version + Modified versions must be modified to attribute to the original source + and be marked in reasonable ways as differentiate it from the original + version --]] -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 + udp:sendto(id, "10.255.255.255", 4919) wait_for_ticks(5 * 60) -- 5 minutes end end