#!/bin/sh # # clatd dispatcher script for NetworkManager # # Install it to: /etc/NetworkManager/dispatcher.d/50-clatd # # Written by Tore Anderson # # Newer NetworkManager versions will run the dispatcher scripts once # a new unmanaged interface shows up, including the 'clat' interface # created by clatd/TAYGA. So if we're being called due to our own # interface showing up, do nothing, otherwise we will end up # committing suicide from the restarts below [ "$DEVICE_IFACE" = "clat" ] && exit 0 # We're only acting on interface "up" or "down" events. NM will run the # dispatcher scripts for other events we're not interested in, like the # hostname being set or a DHCP lease being renewed. Ignore those. [ "$2" != "up" ] && [ "$2" != "down" ] && exit 0 # We simply restart clatd in all situations, as no matter if an interface # goes up or down, it may mean that the PLAT device changes, it may mean # native IPv4 appearing or disappearing, or it may mean that DNS64 became # available or unavailable...it's far easier to simply restart always and # start from scratch than to figure out if a restart is truly necessary # systemd-based distros if which systemctl &> /dev/null; then systemctl --no-block restart clatd.service fi # upstart-based distros if test -x /sbin/initctl; then /sbin/initctl restart clatd fi