#!/bin/sh
INTERFACE="${1}"
STATUS="${2}"
case "${STATUS}" in
up)
# VPN interfaces managed by networkmanager send events vpn-{up,down}.
# If the connection is started by whatever networkmanager sees this
# and triggers event up or down. Ignore these.
if ip tuntap | grep -q "^${INTERFACE}:"; then
echo "${0}: ${INTERFACE} changed status to up, but is tun/tap. Ignoring."
exit 0
fi
if pgrep -x openvpn >/dev/null; then
echo "${0}: ${INTERFACE} changed status to up, sending restart to openvpn."
kill -USR1 $(pgrep -x openvpn)
fi
;;
*)
echo "${0}: ${INTERFACE} changed status to ${STATUS}, ignoring."
;;
esac