diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-02 15:45:09 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-03-02 15:45:09 (GMT) |
commit | 7b896726047dc1da898f39f7c7c64f397d7ad31f (patch) | |
tree | 676d4ee2f551c09114ec647076520af9744a1a21 /shell/hardware/nmclient.py | |
parent | d748682ef776b3413fe99fd6f458f2647318e5ea (diff) |
Catch GetActiveNetwork exceptions.
Listen for activation failures.
Diffstat (limited to 'shell/hardware/nmclient.py')
-rw-r--r-- | shell/hardware/nmclient.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/shell/hardware/nmclient.py b/shell/hardware/nmclient.py index a382621..31c198d 100644 --- a/shell/hardware/nmclient.py +++ b/shell/hardware/nmclient.py @@ -303,11 +303,14 @@ class Device(gobject.GObject): def set_state(self, state): self._state = state - 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() + try: + obj = sys_bus.get_object(NM_SERVICE, self._op) + dev = dbus.Interface(obj, NM_IFACE_DEVICES) + network = dev.getActiveNetwork() + except dbus.DBusException: + network = None + if self._networks.has_key(network): self.set_active_network(self._networks[network]) else: @@ -428,6 +431,7 @@ class NMClient(gobject.GObject): 'DeviceActivating': self.device_activating_sig_handler, 'DeviceNowActive': self.device_now_active_sig_handler, 'DeviceNoLongerActive': self.device_no_longer_active_sig_handler, + 'DeviceActivationFailed': self.device_activation_failed_sig_handler, 'DeviceCarrierOn': self.device_carrier_on_sig_handler, 'DeviceCarrierOff': self.device_carrier_off_sig_handler, 'DeviceStrengthChanged': self.wireless_device_strength_changed_sig_handler, @@ -544,6 +548,13 @@ class NMClient(gobject.GObject): return self._devices[device].set_state(DEVICE_STATE_INACTIVE) + def device_activation_failed_sig_handler(self, device): + logging.debug('DeviceActivationFailed for %s' % (device)) + if not self._devices.has_key(device): + logging.debug('DeviceActivationFailed, device %s does not exist' % (device)) + return + self._devices[device].set_state(DEVICE_STATE_INACTIVE) + def name_owner_changed_sig_handler(self, name, old, new): if name != NM_SERVICE: return |