[Telepathy-commits] [telepathy-pinocchio/master] handle incompatibility in constant naming between different dbus-python versions

Travis Reitter travis.reitter at collabora.co.uk
Tue Aug 19 15:07:43 PDT 2008


---
 pinocchio/connection_manager.py |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/pinocchio/connection_manager.py b/pinocchio/connection_manager.py
index 055b33b..a250c63 100644
--- a/pinocchio/connection_manager.py
+++ b/pinocchio/connection_manager.py
@@ -34,15 +34,27 @@ class ConnectionManager(tp.server.ConnectionManager):
     """
 
     def __init__(self):
+        # try current symbol locations first
+        try:
+            from dbus.bus import NAME_FLAG_DO_NOT_QUEUE \
+                    as NAME_FLAG_DO_NOT_QUEUE
+            from dbus.bus import REQUEST_NAME_REPLY_EXISTS \
+                    as REQUEST_NAME_REPLY_EXISTS
+        # fall back to older locations for older versions of dbus-python
+        except ImportError:
+            from _dbus_bindings import NAME_FLAG_DO_NOT_QUEUE \
+                    as NAME_FLAG_DO_NOT_QUEUE
+            from _dbus_bindings import REQUEST_NAME_REPLY_EXISTS \
+                    as REQUEST_NAME_REPLY_EXISTS
+
         tp.server.ConnectionManager.__init__(self, 'pinocchio')
 
         self._protos[pin.common.PROTO_DEFAULT] = pin.connection.Connection
 
         bus = dbus.SessionBus()
 
-        rv = bus.request_name(pin.common.CM_PINOCCHIO,
-                              dbus.bus.NAME_FLAG_DO_NOT_QUEUE)
-        if rv == dbus.bus.REQUEST_NAME_REPLY_EXISTS:
+        rv = bus.request_name(pin.common.CM_PINOCCHIO, NAME_FLAG_DO_NOT_QUEUE)
+        if rv == REQUEST_NAME_REPLY_EXISTS:
             raise dbus.NameExistsException (pin.common.CM_PINOCCHIO)
 
     def GetParameters(self, proto):
-- 
1.5.6.3



More information about the Telepathy-commits mailing list