2004-10-23 Dan Williams <dcbw@redhat.com>
* info-daemon/NetworkManagerInfoDbus.c - Trap the "DeviceActivationFailed" signal * docs/NetworkManager DBUS API.txt - Add "DeviceActivationFailed" signal * panel-applet/NMWirelessAppletDbus.c - Quash the "NetworkManager service not available" message * src/NetworkManagerDbus.[ch] - Add the "DeviceActivationFailed" signal * src/NetworkManagerDevice.c - Add support for activation_failed flag - Fix deadlock where activation thread didn't clean itself up, making main thread still believe it was alive forever (didn't reset activation flags like activating, just_activated, etc when IP configuration failed) * src/NetworkManagerPolicy.c - Implement logic for DeviceActivationFailed signal, and when activation fails for wireless networks, try to fall back to some other access point git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@268 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
@@ -350,6 +350,26 @@ gboolean nm_state_modification_monitor (gpointer user_data)
|
||||
nm_dbus_signal_device_status_change (data->dbus_connection, data->active_device, DEVICE_NOW_ACTIVE);
|
||||
syslog (LOG_INFO, "nm_state_modification_monitor() activated device %s", nm_device_get_iface (data->active_device));
|
||||
}
|
||||
else if (data->active_device && nm_device_did_activation_fail (data->active_device))
|
||||
{
|
||||
NMAccessPoint *ap = NULL;
|
||||
nm_dbus_signal_device_status_change (data->dbus_connection, data->active_device, DEVICE_ACTIVATION_FAILED);
|
||||
if (nm_device_is_wireless (data->active_device))
|
||||
{
|
||||
ap = nm_device_get_best_ap (data->active_device);
|
||||
nm_ap_ref (ap);
|
||||
/* Add the AP to the invalid list and force a best ap update */
|
||||
nm_ap_list_append_ap (data->invalid_ap_list, ap);
|
||||
nm_device_update_best_ap (data->active_device);
|
||||
}
|
||||
if (ap && nm_ap_get_essid (ap))
|
||||
syslog (LOG_INFO, "nm_state_modification_monitor() failed to activate device %s (%s)", nm_device_get_iface (data->active_device), nm_ap_get_essid (ap));
|
||||
else
|
||||
syslog (LOG_INFO, "nm_state_modification_monitor() failed to activate device %s", nm_device_get_iface (data->active_device));
|
||||
nm_data_mark_state_changed (data);
|
||||
if (ap)
|
||||
nm_ap_unref (ap);
|
||||
}
|
||||
|
||||
/* Clear the starting up flag, so we will now take over and have our way with
|
||||
* any device we find out about.
|
||||
|
Reference in New Issue
Block a user