This patch fixes the behavior when IPv4 and IPv6 is configured in the same profile file but only IPv6 address can be acquired. Without this patch, the process finishes right after the attempt to acquire IPv4 address and never gets to the point where IPv6 address can be acquired. Signed-off-by: Jiri Tyr <jiri.tyr@gmail.com> --- src/lib/ip | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib/ip b/src/lib/ip index 2dc67fc..5b0eab2 100644 --- a/src/lib/ip +++ b/src/lib/ip @@ -62,9 +62,17 @@ ip_set() { ;; esac + OnlyIPv6=no case $IP in dhcp) - dhcp_call "${DHCPClient:-dhcpcd}" start 4 || return + dhcp_call "${DHCPClient:-dhcpcd}" start 4 + # Do not fail yet, maybe only IPV6 address will be acquired + if [[ $? > 0 ]] && [[ $IP6 != @(dhcp|dhcp-noaddr) ]]; then + return + elif [[ $? > 0 ]]; then + report_debug "Could not get IPv4 address. Will try IPv6." + fi + OnlyIPv6=yes ;; static) for addr in "${Address[@]}"; do @@ -82,7 +90,7 @@ ip_set() { ;; esac - if [[ $IP != @(|no) ]]; then + if [[ $OnlyIPv6 == 'no' ]] && [[ $IP != @(|no) ]]; then # Add static IP routes for route in "${Routes[@]}"; do if ! do_debug ip route add $route dev "$Interface"; then -- 2.2.2