parent
c457155452
commit
65b4654000
@ -0,0 +1,40 @@ |
||||
add_route() { |
||||
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 netmask "$config" netmask |
||||
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 |
||||
} |
||||
|
||||
netmask="${netmask:-255.255.255.255}" |
||||
dest="${netmask:+-net "$target" netmask "$netmask"}" |
||||
dest="${dest:--host "$target"}" |
||||
|
||||
/sbin/route add $dest gw "$gateway" ${dev:+dev "$dev"} ${metric:+ metric "$metric"} |
||||
} |
||||
|
||||
case "$ACTION" in |
||||
ifup) |
||||
include /lib/network |
||||
scan_interfaces |
||||
config_foreach "add_route" route |
||||
;; |
||||
esac |
Loading…
Reference in new issue