Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/hardware/nmclient.py
diff options
context:
space:
mode:
authorMarco 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)
commit7b896726047dc1da898f39f7c7c64f397d7ad31f (patch)
tree676d4ee2f551c09114ec647076520af9744a1a21 /shell/hardware/nmclient.py
parentd748682ef776b3413fe99fd6f458f2647318e5ea (diff)
Catch GetActiveNetwork exceptions.
Listen for activation failures.
Diffstat (limited to 'shell/hardware/nmclient.py')
-rw-r--r--shell/hardware/nmclient.py19
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