mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-07 15:40:31 +01:00
dhcp: gracefully recover from failed DHCP BOUND state transitions (bgo #743700)
First, configure.ac's grep was wrong and wasn't setting DHCPCD_SUPPORTS_IPV6, which caused dhcpcd to acquire a DHCPv6 address when NM didn't think that was going to happen, and thus DHCP options couldn't be parsed. Second, even if that does happen, don't just assert and quit, but set the DHCP state to failed. https://bugzilla.gnome.org/show_bug.cgi?id=743700
This commit is contained in:
parent
7de9bc618a
commit
511a7395bf
2 changed files with 9 additions and 3 deletions
|
|
@ -721,10 +721,10 @@ fi
|
|||
if test "$with_dhcpcd" = "yes"; then
|
||||
AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin)
|
||||
if test "$with_dhcpcd" != "no"; then
|
||||
if ! $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[456789]]\."; then
|
||||
if ! $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [456789]\."; then
|
||||
AC_MSG_WARN([Cannot use dhcpcd, version 4.x or higher is required])
|
||||
with_dhcpcd=no
|
||||
elif $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[6789]]\."; then
|
||||
elif $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [6789]\."; then
|
||||
AC_DEFINE(DHCPCD_SUPPORTS_IPV6, 1, [Define if dhcpcd supports IPv6 (6.x+)])
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -767,7 +767,13 @@ nm_dhcp_client_handle_event (gpointer unused,
|
|||
str_options,
|
||||
priv->priority);
|
||||
}
|
||||
g_warn_if_fail (ip_config != NULL);
|
||||
|
||||
/* Fail if no valid IP config was received */
|
||||
if (ip_config == NULL) {
|
||||
nm_log_warn (LOGD_DHCP, "(%s): DHCP client bound but IP config not received", iface);
|
||||
new_state = NM_DHCP_STATE_FAIL;
|
||||
g_clear_pointer (&str_options, g_hash_table_unref);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue