diff options
author | Steven Barth <cyrus@openwrt.org> | 2013-01-28 13:53:43 +0000 |
---|---|---|
committer | Steven Barth <cyrus@openwrt.org> | 2013-01-28 13:53:43 +0000 |
commit | e964fa5d8f49edc5e731a82b1600313369b0ecaf (patch) | |
tree | 85c5ebac1c971945b4f80651cbf2c3d2c25bb4d2 | |
parent | 5f735b291fadd239a04acabecebe3e5c77255ba4 (diff) | |
download | upstream-e964fa5d8f49edc5e731a82b1600313369b0ecaf.tar.gz upstream-e964fa5d8f49edc5e731a82b1600313369b0ecaf.tar.bz2 upstream-e964fa5d8f49edc5e731a82b1600313369b0ecaf.zip |
odhcp6c: work-around for proto-script to avoid loosing the default route
SVN-Revision: 35345
-rw-r--r-- | package/network/ipv6/odhcp6c/Makefile | 2 | ||||
-rwxr-xr-x | package/network/ipv6/odhcp6c/files/dhcpv6.script | 29 |
2 files changed, 11 insertions, 20 deletions
diff --git a/package/network/ipv6/odhcp6c/Makefile b/package/network/ipv6/odhcp6c/Makefile index dc729fc4b9..0d66272ef2 100644 --- a/package/network/ipv6/odhcp6c/Makefile +++ b/package/network/ipv6/odhcp6c/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=odhcp6c -PKG_VERSION:=2013-01-21 +PKG_VERSION:=2013-01-28 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.script b/package/network/ipv6/odhcp6c/files/dhcpv6.script index 859ae1b745..f2161c2339 100755 --- a/package/network/ipv6/odhcp6c/files/dhcpv6.script +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.script @@ -7,34 +7,29 @@ ipv6_conf() { echo "$3" > "/proc/sys/net/ipv6/conf/$1/$2" } -# RFC 6204 requires us to block forwarding until address acquisition is complete -ipv6_block_forwarding() { - ip6tables "-$2" forwarding_rule -o "$1" -j REJECT --reject-with no-route 2>/dev/null -} - prepare_interface() { local device="$1" - - ipv6_block_forwarding "$device" A - ipv6_conf "$device" accept_ra 2 ipv6_conf "$device" forwarding 2 # Send RS - [ -x /usr/sbin/6relayd ] && /usr/sbin/6relayd -s "$device" + if [ -x /usr/sbin/6relayd ]; then + sleep 1 + /usr/sbin/6relayd -s "$device" + sleep 4 + /usr/sbin/6relayd -s "$device" + fi + } cleanup_interface() { local device="$1" ipv6_conf "$device" accept_ra 1 ipv6_conf "$device" forwarding 1 - ipv6_block_forwarding "$device" D } setup_interface () { local device="$1" - ipv6_block_forwarding "$device" D - proto_init_update "*" 1 for dns in $RDNSS; do @@ -60,16 +55,12 @@ teardown_interface() { } case "$2" in - started) - prepare_interface "$1" - ;; - stopped) - cleanup_interface "$1" - ;; informed|bound|updated|rebound) setup_interface "$1" + prepare_interface "$1" ;; - unbound|timeout) + started|stopped|unbound) + cleanup_interface "$1" teardown_interface "$1" ;; esac |