base-files: Fix IPv6 early sysctls again
authorcyrus <cyrus@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 1 Feb 2013 12:28:24 +0000 (12:28 +0000)
committercyrus <cyrus@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 1 Feb 2013 12:28:24 +0000 (12:28 +0000)
* Kernel IPv6 /proc interface inconsistency caused races

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35417 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/Makefile
package/base-files/files/etc/init.d/boot
package/base-files/files/etc/sysctl_early.conf [deleted file]

index 8943c46..99db435 100644 (file)
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/version.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=130
+PKG_RELEASE:=131
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=opkg/host
index 1800342..005c4ad 100755 (executable)
@@ -96,8 +96,12 @@ start() {
                [ -n "$rootdev" ] && ln -s "$rootdev" /dev/root
        }
 
-       # run early sysctl
-       [ -f /etc/sysctl_early.conf ] && sysctl -p /etc/sysctl_early.conf -e >&-
+       # early sysctl to avoid networking races
+       if [ -d /proc/sys/net/ipv6/conf ]; then
+               for i in /proc/sys/net/ipv6/conf/*/accept_ra; do
+                       echo 0 > $i
+               done
+       fi
 }
 
 stop() {
diff --git a/package/base-files/files/etc/sysctl_early.conf b/package/base-files/files/etc/sysctl_early.conf
deleted file mode 100644 (file)
index 6f2eeea..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Avoid race-conditions with SLAAC
-net.ipv6.conf.default.accept_ra=0
-net.ipv6.conf.all.accept_ra=0