diff --git a/src/connections/ethernet b/src/connections/ethernet index 45f46ac..0f5e191 100644 --- a/src/connections/ethernet +++ b/src/connections/ethernet @@ -50,12 +50,21 @@ ethernet_up() { dhcp) if checkyesno "${DHCLIENT:-no}"; then rm -r "/var/run/dhclient-${INTERFACE}.pid" >/dev/null 2>&1 - report_debug ethernet_up dhclient -q -e TIMEOUT="${DHCP_TIMEOUT:-10}" -pf "/var/run/dhclient-$INTERFACE.pid" "$INTERFACE" - if ! dhclient -q -e TIMEOUT="${DHCP_TIMEOUT:-10}" -pf "/var/run/dhclient-${INTERFACE}.pid" ${DHCLIENT_OPTIONS} "$INTERFACE"; then + report_debug ethernet_up dhclient -4 -q -e TIMEOUT="${DHCP_TIMEOUT:-10}" -lf "/var/state/dhclient/dhclient.leases" -pf "/var/run/dhclient-$INTERFACE.pid" "$INTERFACE" + if ! dhclient -4 -q -e TIMEOUT="${DHCP_TIMEOUT:-10}" -lf "/var/state/dhclient/dhclient.leases" -pf "/var/run/dhclient-${INTERFACE}.pid" ${DHCLIENT_OPTIONS} "$INTERFACE"; then report_fail "DHCP IP lease attempt failed." stop_80211x return 1 fi + if checkyesno "${DHCLIENT_V6:-no}"; then + rm -r "/var/run/dhclient6-${INTERFACE}.pid" >/dev/null 2>&1 + report_debug ethernet_up dhclient -6 -q -e TIMEOUT="${DHCP_TIMEOUT:-10}" -lf "/var/state/dhclient/dhclient6.leases" -pf "/var/run/dhclient6-$INTERFACE.pid" "$INTERFACE" + if ! dhclient -6 -q -e TIMEOUT="${DHCP_TIMEOUT:-10}" -lf "/var/state/dhclient/dhclient6.leases" -pf "/var/run/dhclient6-${INTERFACE}.pid" ${DHCLIENT6_OPTIONS} "$INTERFACE"; then + report_fail "DHCPv6 IP lease attempt failed." + stop_80211x + return 1 + fi + fi else # Clear remaining pid files. rm -f "/var/run/dhcpcd-$INTERFACE".{pid,cache} >/dev/null 2>&1