diff --git a/ChangeLog b/ChangeLog index 9aaef3982c..e27fbfef88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-08-12 Dan Williams + + * src/NetworkManagerPolicy.c + - (nm_policy_device_change_check): fix policy to deactivate old device + before activating new one, at least until the multiple active + device support lands + 2007-08-12 Dan Williams * src/NetworkManagerPolicy.c diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c index 6ab2d111dd..2912fdbcb7 100644 --- a/src/NetworkManagerPolicy.c +++ b/src/NetworkManagerPolicy.c @@ -290,7 +290,6 @@ nm_policy_device_change_check (gpointer user_data) } else if (old_dev && !new_dev) { /* Terminate current connection */ nm_info ("SWITCH: terminating current connection '%s' because it's no longer valid.", nm_device_get_iface (old_dev)); - nm_device_interface_deactivate (NM_DEVICE_INTERFACE (old_dev)); do_switch = TRUE; } else if (old_dev && new_dev) { NMActRequest * old_act_req = nm_device_get_act_request (old_dev); @@ -359,13 +358,19 @@ nm_policy_device_change_check (gpointer user_data) } } - if (do_switch && new_dev) { - NMConnection *connection; + if (do_switch) { + if (old_dev) { + nm_device_interface_deactivate (NM_DEVICE_INTERFACE (old_dev)); + } - connection = create_connection (new_dev, ap); - if (connection) - nm_device_interface_activate (NM_DEVICE_INTERFACE (new_dev), - connection, FALSE); + if (new_dev) { + NMConnection *connection; + + connection = create_connection (new_dev, ap); + if (connection) + nm_device_interface_activate (NM_DEVICE_INTERFACE (new_dev), + connection, FALSE); + } } if (ap)