blob: d3eae86843ee73da6421a637576e8e27db6f8b95 [file] [log] [blame]
#! /bin/sh
. /etc/utils.sh
# called from ifplugd
iface="$1"
action="$2"
CONMAN_STATUS_DIR=/tmp/conman/interfaces
echo "ifplugd: $iface is $action"
case "$action" in
up)
# Clear any existing dynamic IP config.
rm -f "/tmp/ip/dynamic/$iface"
# Update ipv4 address on $iface
ipapply "$iface"
if [ "$iface" = pon0 ]; then
# Fiber Jack
ethtool -r eth0
ifup man
fi
if is-spacecast && [ "$iface" = lan0 ]; then
# Spacecast Box
run-dhclient "$iface"
fi
if [ "$iface" = wan0 ]; then
# Network Box
# Start dhclient on the wan interfaces.
run-dhclient "$iface"
if interface_exists wan0.2; then
run-dhclient wan0.2
fi
if [ -e "/sys/class/net/br0" ]; then
# Stop any running dhclients on br0 now that the wan is up.
killpid /var/run/dhclient.br0.pid
killpid /var/run/dhclient6.br0.pid
# Bridge mode might require br0 to switch address config.
ipapply br0
fi
fi
if is-wireless-client; then
echo 1 >"$CONMAN_STATUS_DIR/$iface"
if [ "$iface" = eth0 ] || [ "$iface" = moca0 ]; then
run-dhclient br0
elif startswith "$iface" wcli; then
run-dhclient "$iface"
fi
fi
QUIET=1 restart dnsmasq
;;
down)
# Update ipv4 address on $iface
ipapply "$iface"
if [ "$iface" = pon0 ]; then
ethtool -r eth0
fi
if is-wireless-client; then
echo 0 >"$CONMAN_STATUS_DIR/$iface"
fi
if [ "$iface" = "wan0" -a -e /sys/class/net/br0 ]; then
# Run dhclient for bridge mode, ipapply will select the
# appropriate configuration (static vs dynamic).
ipapply br0
run-dhclient br0
fi
QUIET=1 restart dnsmasq
;;
*)
echo "$0: unknown action '$action'"
exit 1
esac
exit 0