diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-02 14:56:06 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-02 14:56:06 (GMT) |
commit | d748682ef776b3413fe99fd6f458f2647318e5ea (patch) | |
tree | 812d2e20c065000494f01d252f8c288510745061 /shell/hardware/nmclient.py | |
parent | baad7784063a8de0c222ace5424a82aca829105b (diff) |
Handle the case where we get an Activating event
but we don't have an active device yet.
Diffstat (limited to 'shell/hardware/nmclient.py')
-rw-r--r-- | shell/hardware/nmclient.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/shell/hardware/nmclient.py b/shell/hardware/nmclient.py index 491f686..a382621 100644 --- a/shell/hardware/nmclient.py +++ b/shell/hardware/nmclient.py @@ -286,6 +286,8 @@ class Device(gobject.GObject): self.emit('ssid-changed') def set_active_network(self, network): + if self._active_network == network: + return if self._active_network: self._active_network.disconnect(self._ssid_sid) @@ -301,12 +303,15 @@ class Device(gobject.GObject): def set_state(self, state): self._state = state - if state == DEVICE_STATE_ACTIVATING: - obj = sys_bus.get_object(NM_SERVICE, self._op) - dev = dbus.Interface(obj, NM_IFACE_DEVICES) + obj = sys_bus.get_object(NM_SERVICE, self._op) + dev = dbus.Interface(obj, NM_IFACE_DEVICES) + if self._type == DEVICE_TYPE_802_11_WIRELESS: network = dev.getActiveNetwork() - self.set_active_network(self._networks[network]) + if self._networks.has_key(network): + self.set_active_network(self._networks[network]) + else: + self.set_active_network(None) _device_to_network_state = { DEVICE_STATE_ACTIVATING : NETWORK_STATE_CONNECTING, |