diff --git a/files/usr/local/bin/mgr/namechange.lua b/files/usr/local/bin/mgr/namechange.lua index 727f31a8..13c98546 100644 --- a/files/usr/local/bin/mgr/namechange.lua +++ b/files/usr/local/bin/mgr/namechange.lua @@ -39,12 +39,18 @@ function namechange() local count = 0 while true do - if not nixio.fs.stat("/tmp/namechange") and count < 12 then + local exists = nixio.fs.stat("/tmp/namechange") + if not exists and count < 12 then count = count + 1 wait_for_ticks(5) else - os.remove("/tmp/namechange") + if exists then + os.remove("/tmp/namechange") + end do_namechange() + if not exists then + dns_update() + end count = 0 end end @@ -114,4 +120,11 @@ function do_namechange() end +function dns_update() + local pid = capture("pidof dnsmasq") + if pid ~= "" then + nixio.kill(tonumber(pid), 1) + end +end + return namechange diff --git a/files/usr/local/bin/olsrd-config b/files/usr/local/bin/olsrd-config index df5bbc19..65acce10 100755 --- a/files/usr/local/bin/olsrd-config +++ b/files/usr/local/bin/olsrd-config @@ -275,7 +275,7 @@ print([[{]]) print([[ PlParam "sighup-pid-file" "/var/run/dnsmasq/dnsmasq.pid"]]) print([[ PlParam "interval" "30"]]) print([[ PlParam "timeout" "300"]]) -print([[ PlParam "name-change-script" "cp /var/run/hosts_olsr /var/run/hosts_olsr.snapshot; mv -f /var/run/hosts_olsr.snapshot /var/run/hosts_olsr.stable; touch /tmp/namechange /var/run/hosts_olsr.stable"]]) +print([[ PlParam "name-change-script" "/usr/local/bin/olsrd-namechange"]]) for _, name in ipairs(names) do print([[ PlParam "name" "]] .. name .. [["]]) diff --git a/files/usr/local/bin/olsrd-namechange b/files/usr/local/bin/olsrd-namechange new file mode 100755 index 00000000..422bef79 --- /dev/null +++ b/files/usr/local/bin/olsrd-namechange @@ -0,0 +1,38 @@ +#!/bin/sh +<<'LICENSE' + Part of AREDN -- Used for creating Amateur Radio Emergency Data Networks + Copyright (C) 2023 Tim Wilkinson + 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 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 . + + Additional Terms: + + 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. + + 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. + +LICENSE + +cp /var/run/hosts_olsr /var/run/hosts_olsr.snapshot +mv -f /var/run/hosts_olsr.snapshot /var/run/hosts_olsr.stable +touch /tmp/namechange