diff --git a/ChangeLog b/ChangeLog index 99e3d1813..9b8efa22c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-08-22 Dan Williams + + Patch by Bill Moss + * src/dhcp-manager/nm-dhcp-manager.c + - (nm_dhcp_manager_cancel_transaction): Give dhcdbd/dhclient + some time to send out a RELEASE if they like + 2005-08-22 Dan Williams Noticed by Bill Moss diff --git a/src/NetworkManagerDevice.c b/src/NetworkManagerDevice.c index 563c54480..57bf8dccf 100644 --- a/src/NetworkManagerDevice.c +++ b/src/NetworkManagerDevice.c @@ -3188,6 +3188,7 @@ gboolean nm_device_deactivate (NMDevice *dev) */ if (dev->act_request) { + nm_dhcp_manager_cancel_transaction (dev->app_data->dhcp_manager, dev->act_request); nm_act_request_unref (dev->act_request); dev->act_request = NULL; } diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c index 09a43b92c..5215c4d4b 100644 --- a/src/dhcp-manager/nm-dhcp-manager.c +++ b/src/dhcp-manager/nm-dhcp-manager.c @@ -320,6 +320,12 @@ void nm_dhcp_manager_cancel_transaction (NMDHCPManager *manager, NMActRequest *r { dbus_connection_send (manager->data->dbus_connection, message, NULL); dbus_message_unref (message); + + /* Give dhcdbd/dhclient some time to send out a RELEASE if they like */ + /* FIXME: we should really monitor the interface's DHCP state by waiting + * for dhcdbd to tell us the device is "down" rather than sleeping here. + */ + sleep (1); } g_free (path);