diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-05-21 13:18:18 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-05-21 13:18:18 +0100 |
commit | 03bcbff71d4bf112441dfd53300328c70d3a512c (patch) | |
tree | d8d093a341765c14af74c3890106edb83e4d3ced | |
parent | 09e138af65710b11363e0852711171c3a9f8ef00 (diff) | |
download | dbus-python-03bcbff71d4bf112441dfd53300328c70d3a512c.tar.gz |
dbus.bus: detect NameHasNoOwner correctly, using new get_dbus_name() method
-rw-r--r-- | dbus/bus.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/dbus/bus.py b/dbus/bus.py index 645f6a8..9313289 100644 --- a/dbus/bus.py +++ b/dbus/bus.py @@ -42,6 +42,8 @@ _NAME_OWNER_CHANGE_MATCH = ("type='signal',sender='%s'," """(_NAME_OWNER_CHANGE_MATCH % sender) matches relevant NameOwnerChange messages""" +_NAME_HAS_NO_OWNER = 'org.freedesktop.DBus.Error.NameHasNoOwner' + _logger = logging.getLogger('dbus.bus') @@ -55,8 +57,7 @@ class NameOwnerWatch(object): callback(new_owner) def error_cb(e): - # FIXME: detect whether it's NameHasNoOwner properly - if str(e).startswith('org.freedesktop.DBus.Error.NameHasNoOwner:'): + if e.get_dbus_name() == _NAME_HAS_NO_OWNER: callback('') else: logging.basicConfig() @@ -158,10 +159,9 @@ class BusConnection(Connection): try: return self.get_name_owner(bus_name) except DBusException, e: - # FIXME: detect whether it's NameHasNoOwner, but properly - #if not str(e).startswith('org.freedesktop.DBus.Error.NameHasNoOwner:'): - # raise - # it might not exist: try to start it + if e.get_dbus_name() != _NAME_HAS_NO_OWNER: + raise + # else it doesn't exist: try to start it self.start_service_by_name(bus_name) return self.get_name_owner(bus_name) else: |