summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rc.inet18
1 files changed, 8 insertions, 0 deletions
diff --git a/rc.inet1 b/rc.inet1
index cfd8d10..6cbaa15 100644
--- a/rc.inet1
+++ b/rc.inet1
@@ -157,6 +157,12 @@ if_up() {
if [ -e /sys/class/net/${1%%:*} ]; then # interface exists
if ! /sbin/ip address show permanent scope global dev ${1} 2>/dev/null | grep -Ewq '(inet|inet6)' || \
! /sbin/ip link show dev ${1} | grep -wq "state UP" ; then # interface not up or not configured
+ # Enable/disable v6 IP auto configuration.
+ if [ "${USE_STATELESS[$i]}" = "yes" ]; then
+ echo "1" >/proc/sys/net/ipv6/conf/$1/autoconf
+ else
+ echo "0" >/proc/sys/net/ipv6/conf/$1/autoconf
+ fi
if [ -n "${HWADDR[$i]}" ]; then # Set hardware address _before_ the interface goes up:
echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} address ${HWADDR[$i]}" | $LOGGER
/sbin/ip link set dev ${1} address ${HWADDR[$i]}
@@ -280,6 +286,8 @@ if_down() {
if [ -x /etc/rc.d/rc.wireless ]; then
. /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any.
fi
+ # Set interface v6 autoconf back to the default (disabled):
+ echo "0" >/proc/sys/net/ipv6/conf/$1/autoconf
# If the interface is a bridge, then destroy it now:
if [ -n "${BRNICS[$i]}" ]; then
br_close $i