|
|
|
@ -31,11 +31,40 @@ add_route() { |
|
|
|
|
/sbin/route add $dest gw "$gateway" ${dev:+dev "$dev"} ${metric:+ metric "$metric"} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
add_route6() { |
|
|
|
|
local config="$1" |
|
|
|
|
|
|
|
|
|
# is this route intended for the |
|
|
|
|
# $INTERFACE of this hotplug event |
|
|
|
|
config_get interface "$config" interface |
|
|
|
|
[ "$interface" != "$INTERFACE" ] && return 0 |
|
|
|
|
|
|
|
|
|
# get the real interface name from network config |
|
|
|
|
config_get dev "$interface" ifname |
|
|
|
|
|
|
|
|
|
config_get target "$config" target |
|
|
|
|
config_get gateway "$config" gateway |
|
|
|
|
config_get metric "$config" metric |
|
|
|
|
|
|
|
|
|
# make sure there is a gateway and a target |
|
|
|
|
[ -n "$target" ] || { |
|
|
|
|
echo "Missing target in route section $config" |
|
|
|
|
return 1 |
|
|
|
|
} |
|
|
|
|
[ -n "$gateway" ] || { |
|
|
|
|
echo "Missing gateway in route section $config" |
|
|
|
|
return 1 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/sbin/route -A inet6 add $target gw "$gateway" ${dev:+dev "$dev"} ${metric:+ metric "$metric"} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case "$ACTION" in |
|
|
|
|
ifup) |
|
|
|
|
include /lib/network |
|
|
|
|
scan_interfaces |
|
|
|
|
. /var/state/network |
|
|
|
|
config_foreach "add_route" route |
|
|
|
|
config_foreach "add_route6" route6 |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|