aboutsummaryrefslogtreecommitdiffstats
#!/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