summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorRobert McQueen <robot101@debian.org>2005-11-27 16:40:57 +0000
committerRobert McQueen <robot101@debian.org>2005-11-27 16:40:57 +0000
commitc77c7e343b73bb9c14319679063a55e5cf1ee1d6 (patch)
tree4db3c1b4c48d49bdb528560072cbbaa5004b22d6 /python
parentcaecde624d877cc09fd69f0cb27e39ace6524b9b (diff)
2005-11-27 Robert McQueen <robot101@debian.org>
* python/dbus_bindings.pyx: Fix a bug where doing a strict append with type v of an instance of dbus.Variant(foo, type='x') caused it to be boxed twice before sending over the bus. * python/dbus_bindings.pyx, python/service.py, test/python/test-client.py: Update the constants for the new request_name flags, and update comments/test cases now that queueing is the default action.
Diffstat (limited to 'python')
-rw-r--r--python/dbus_bindings.pyx8
-rw-r--r--python/service.py5
2 files changed, 9 insertions, 4 deletions
diff --git a/python/dbus_bindings.pyx b/python/dbus_bindings.pyx
index 8b1b221b..21adc87a 100644
--- a/python/dbus_bindings.pyx
+++ b/python/dbus_bindings.pyx
@@ -1053,7 +1053,10 @@ cdef class MessageIter:
tmp_sig = sig[1:-1]
retval = self.append_struct(value, signature = tmp_sig)
elif sig_type == TYPE_VARIANT:
- retval = self.append_variant(Variant(value))
+ if isinstance(value, Variant):
+ retval = self.append_variant(value)
+ else:
+ retval = self.append_variant(Variant(value))
elif sig_type == DICT_ENTRY_BEGIN:
raise TypeError, "Signiture is invalid in append_strict. A dict entry must be part of an array."
else:
@@ -1748,8 +1751,9 @@ def bus_register(Connection connection):
return retval
-NAME_FLAG_PROHIBIT_REPLACEMENT = 0x1
+NAME_FLAG_ALLOW_REPLACEMENT = 0x1
NAME_FLAG_REPLACE_EXISTING = 0x2
+NAME_FLAG_DO_NOT_QUEUE = 0x4
REQUEST_NAME_REPLY_PRIMARY_OWNER = 1
REQUEST_NAME_REPLY_IN_QUEUE = 2
diff --git a/python/service.py b/python/service.py
index e5a7002b..ad36e4f5 100644
--- a/python/service.py
+++ b/python/service.py
@@ -27,8 +27,9 @@ class BusName(object):
if retval == dbus_bindings.REQUEST_NAME_REPLY_PRIMARY_OWNER:
pass
elif retval == dbus_bindings.REQUEST_NAME_REPLY_IN_QUEUE:
- # you can't arrive at this state via the high-level bindings
- # because you can't put flags in, but... who knows?
+ # queueing can happen by default, maybe we should
+ # track this better or let the user know if they're
+ # queued or not?
pass
elif retval == dbus_bindings.REQUEST_NAME_REPLY_EXISTS:
raise NameExistsException(name)