mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 13:48:06 +00:00
odhcp6c: fix some more compatibility issues
Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46335
This commit is contained in:
parent
fab6209f71
commit
a06c1c810e
@ -76,6 +76,7 @@ setup_interface () {
|
||||
done
|
||||
|
||||
for entry in $RA_ROUTES; do
|
||||
local duplicate=0
|
||||
local addr="${entry%%/*}"
|
||||
entry="${entry#*/}"
|
||||
local mask="${entry%%,*}"
|
||||
@ -86,12 +87,16 @@ setup_interface () {
|
||||
entry="${entry#*,}"
|
||||
local metric="${entry%%,*}"
|
||||
|
||||
if [ -z "$gw" ]; then
|
||||
proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid"
|
||||
for xentry in $RA_ROUTES; do
|
||||
local xprefix="${xentry%%,*}"
|
||||
xentry="${xentry#*,}"
|
||||
local xgw="${xentry%%,*}"
|
||||
|
||||
# work around if there is a PIO matching a RIO
|
||||
# Linux seems to prefer source-dest over dest-only even if metric is higher
|
||||
proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid" "$addr/$mask"
|
||||
[ -n "$gw" -a -z "$xgw" -a "$addr/$mask" = "$xprefix" ] && duplicate=1
|
||||
done
|
||||
|
||||
if [ -z "$gw" -o "$duplicate" = 1 ]; then
|
||||
proto_add_ipv6_route "$addr" "$mask" "$gw" "$metric" "$valid"
|
||||
else
|
||||
for prefix in $PREFIXES $ADDRESSES; do
|
||||
local paddr="${prefix%%,*}"
|
||||
|
Loading…
Reference in New Issue
Block a user