#
# Copyright (C) 2018 devolo AG
#

# DHCP event happened. it could have added/deleted the default route to the gateway
# let's look it up and trigger rewrite of guest wifi filter tables when it changed

# get the first default gateway IP address
GW=$(ip -6 route show default)
GW=$(echo ${GW#*via} | cut -d ' ' -f 1)

if [ -n "$GW" ]; then
(
	# subshell for new trap context

	ping -6 -q -c 1 -w 1 $GW >/dev/null
	MAC=$(ip -6 neigh show to $GW)
	MAC=$(echo ${MAC#*lladdr} | cut -d ' ' -f 1)

	TMP=
	trap '[ -n "$TMP" ] && rm -f "$TMP"; TMP=' EXIT HUP INT QUIT TERM
	TMP=$(mktemp)
	cat >$TMP <<-EOF
	GW6_IP=$GW
	GW6_MAC=$MAC
	EOF
	# if changed:
	cmp -s /tmp/guestwifi-ipv6 $TMP || {
		mv $TMP /tmp/guestwifi-ipv6
		TMP=
		(
			. /lib/wifi/delos-wifi/20_delos-guest-wifi
			set_delos_guestwifi
		)
	}
) else
	# if removed:
	rm /tmp/guestwifi-ipv6 2>/dev/null && {
		. /lib/wifi/delos-wifi/20_delos-guest-wifi
		set_delos_guestwifi
	}
fi