summaryrefslogtreecommitdiffstats
path: root/rc.inet1
diff options
context:
space:
mode:
Diffstat (limited to 'rc.inet1')
-rw-r--r--rc.inet114
1 files changed, 12 insertions, 2 deletions
diff --git a/rc.inet1 b/rc.inet1
index 1f5fc45..a606205 100644
--- a/rc.inet1
+++ b/rc.inet1
@@ -198,6 +198,8 @@ if_up() {
IF_UP=1
else
echo "/etc/rc.d/rc.inet1: failed to obtain DHCP lease for ${1}" | $LOGGER
+ /sbin/ip address flush dev ${1}
+ /sbin/ip link set dev ${1} down
fi
fi
if [ "${USE_DHCP[$i]}" != "yes" ] && [ -n "${IPADDR[$i]}" ]; then # add a fixed v4 IP to the interface
@@ -211,6 +213,8 @@ if_up() {
IF_UP=1
else
echo "/etc/rc.d/rc.inet1: failed to a set IP ${IPADDR[$i]} for ${1}" | $LOGGER
+ /sbin/ip address flush dev ${1}
+ /sbin/ip link set dev ${1} down
fi
fi
if [ "${USE_DHCP6[$i]}" != "yes" ] && [ -n "${IPADDR6[$i]}" ]; then # add a fixed v6 IP to the interface
@@ -224,10 +228,15 @@ if_up() {
IF_UP=1
else
echo "/etc/rc.d/rc.inet1: failed to a set IP ${IPADDR6[$i]} for ${1}" | $LOGGER
+ if (($IF_UP != 1)); then # a v4 address was configured, don't flush it
+ /sbin/ip address flush dev ${1}
+ /sbin/ip link set dev ${1} down
+ fi
fi
fi
+# FIXME: Remove the ipaddr6 test?
if [ "${USE_DHCP6[$i]}" != "yes" ] && [ -z "${IPADDR6[$i]}" ] && \
- [ "${USE_AUTOCONF6[$i]}" = "yes" ]; then # interface should configure itself via stateless auto config:
+ [ "${USE_AUTOCONF6[$i]}" = "yes" ]; then # interface should configure itself via stateless auto config
echo "/etc/rc.d/rc.inet1: using Router Advertisement stateless auto configuration for ${1}" | $LOGGER
# Enable accepting of router advertisment packets, and auto configuration of interfaces:
echo "1" >/proc/sys/net/ipv6/conf/$1/accept_ra
@@ -240,9 +249,10 @@ if_up() {
sleep 0.5
done
if (($IF_UP != 1)); then
- /sbin/ip link set dev ${1} down
echo "Timed out!"
echo "/etc/rc.d/rc.inet1: failed to auto configure ${1} after 15 seconds" | $LOGGER
+ /sbin/ip address flush dev ${1}
+ /sbin/ip link set dev ${1} down
fi
fi
if (($IF_UP == 1)); then # only do further config if the interface came up