Skip to content

Commit

Permalink
ff_olsrd_watchdog: delete existing tunnels
Browse files Browse the repository at this point in the history
When OLSRd crashes, the old tunnels still exist.  This can lead to unexpected behaviour.
The tunnels to be removed start with "tnl_"

See freifunk-berlin/firmware#522

Signed-off-by: pmelange <isprotejesvalkata@gmail.com>
  • Loading branch information
pmelange committed Jul 25, 2018
1 parent 82abf9a commit 5d0b720
Showing 1 changed file with 9 additions and 0 deletions.
Expand Up @@ -23,6 +23,15 @@ if fs.access("/var/run/olsrd.pid") or fs.access("/var/run/olsrd4.pid") then

if not wdgtime or ( systime - wdgtime ) > ( intv * 2 ) then
os.execute("logger -t 'OLSR watchdog' 'Process died - restarting!'")
local tnls = io.popen("ip tunnel show | cut -d : -f 1")
while true do
tnl = tnls:read("*line")
if tnl == nil then break end
if string.find(tnl, "tnl_") == 1 then
os.execute(string.format("logger -t 'OLSR watchdog' 'Deleting stale tunnel %s'", tnl))
os.execute(string.format("ip link del %s", tnl))
end
end
os.execute("/etc/init.d/olsrd restart")
end
end
Expand Down

0 comments on commit 5d0b720

Please sign in to comment.