[arch-projects] [netctl] [PATCH V2] Flush the interface configuration in ip_unset instead of bring_interface_down.
Jouke Witteveen
j.witteveen at gmail.com
Fri May 17 15:51:18 EDT 2013
On Thu, May 16, 2013 at 11:19 PM, Thomas Bächler <thomas at archlinux.org> wrote:
> When switching networks in auto.action, the addresses are not flushed. This
> is especially problematic with stateless ipv6 autoconfigutation, as invalid
> IPs may stay around until their (potentially very long) lifetime has expired.
>
> bring_interface_down is always called after ip_unset everywhere else, so
> this change does not affect anything else.
>
> V2: Make sure not to flush the link local address.
> ---
> src/lib/ip | 5 ++++-
> src/lib/network | 1 -
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/lib/ip b/src/lib/ip
> index 2a84c0d..14ed727 100644
> --- a/src/lib/ip
> +++ b/src/lib/ip
> @@ -175,7 +175,7 @@ ip_set() {
> }
>
>
> -## Clean up the dynamic part of an IP configuration
> +## Clean up the IP configuration
> # $Interface: interface name
> # $IP: type of IPv4 configuration
> # $IP6: type of IPv6 configuration
> @@ -202,6 +202,9 @@ ip_unset() {
> fi
>
> [[ $DNS ]] && resolvconf -d "$Interface"
> + ip addr flush dev "$Interface" scope host &>/dev/null
> + ip addr flush dev "$Interface" scope site &>/dev/null
> + ip addr flush dev "$Interface" scope global &>/dev/null
> }
>
>
> diff --git a/src/lib/network b/src/lib/network
> index 6ac9d75..7dfe0b5 100755
> --- a/src/lib/network
> +++ b/src/lib/network
> @@ -31,7 +31,6 @@ bring_interface_up() {
> # $1: interface name
> bring_interface_down() {
> local interface=$1
> - ip addr flush dev "$interface" &>/dev/null
> ip link set dev "$interface" down &>/dev/null
> # We reuse the up timeout (down normally is faster)
> timeout_wait "${TimeoutUp:-5}" '! interface_is_up "$interface"'
> --
> 1.8.2.3
>
Your contribution is much appreciated, thanks,
- Jouke
More information about the arch-projects
mailing list