From fbe413cbcd4f03246e7d8781cec4300acb4a8984 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 15 Jan 2010 12:50:38 -0800 Subject: [PATCH] dhcp: ensure DHCP client is stopped on timeout --- src/dhcp-manager/nm-dhcp-client.c | 3 ++- src/nm-device.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c index 03373d7172..7eb73006d7 100644 --- a/src/dhcp-manager/nm-dhcp-client.c +++ b/src/dhcp-manager/nm-dhcp-client.c @@ -193,7 +193,8 @@ daemon_timeout (gpointer user_data) NMDHCPClient *self = NM_DHCP_CLIENT (user_data); NMDHCPClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE (self); - g_message ("(%s): DHCP transaction took too long, stopping it.", priv->iface); + g_message ("(%s): DHCPv%c request timed out.", + priv->iface, priv->ipv6 ? '6' : '4'); g_signal_emit (G_OBJECT (self), signals[TIMEOUT], 0); return FALSE; } diff --git a/src/nm-device.c b/src/nm-device.c index 7700c7a10f..5acfb2a0dc 100644 --- a/src/nm-device.c +++ b/src/nm-device.c @@ -1224,6 +1224,8 @@ dhcp_timeout (NMDHCPClient *client, gpointer user_data) if (!nm_device_get_act_request (device)) return; + nm_dhcp_client_stop (client); + if (nm_device_get_state (device) == NM_DEVICE_STATE_IP_CONFIG) { if (nm_dhcp_client_get_ipv6 (client)) nm_device_activate_schedule_stage4_ip6_config_timeout (device);