Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-06-19 18:53:32 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-06-19 18:53:32 (GMT)
commitc218b3fc03659e6154fd519a02f4dcbdeea39751 (patch)
tree0e30e9e7364892eea584cdce8611f5d4301d846b /sugar
parent69c1fd62527467e7351da3b015ccfe06a389a81f (diff)
Ensure properties arguments are local encoding (for now), and tell the python dbus bindings explicitly what type to send them through dbus as (ie, ByteArray), because sometimes the bindings can't figure it out
Diffstat (limited to 'sugar')
-rw-r--r--sugar/presence/PresenceService.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/sugar/presence/PresenceService.py b/sugar/presence/PresenceService.py
index 64b15ed..5009928 100644
--- a/sugar/presence/PresenceService.py
+++ b/sugar/presence/PresenceService.py
@@ -525,9 +525,22 @@ class PresenceService(gobject.GObject):
try:
group = dbus.Interface(self._bus.get_object(avahi.DBUS_NAME, self._server.EntryGroupNew()), avahi.DBUS_INTERFACE_ENTRY_GROUP)
- info = ["%s=%s" % (k, v) for k, v in rs_props.items()]
+
+ # Add properties; ensure they are converted to ByteArray types
+ # because python sometimes can't figure that out
+ info = []
+ for k, v in rs_props.items():
+ tmp_item = "%s=%s" % (k, v)
+ # Convert to local encoding for consistency (for now)
+ if type(tmp_item) == type(u""):
+ tmp_item = tmp_item.encode()
+ info.append(dbus.types.ByteArray(tmp_item))
+
if rs_address and len(rs_address):
info.append("address=%s" % (rs_address))
+ logging.debug("PS: about to call AddService for Avahi with rs_name='%s' (%s), rs_stype='%s' (%s)," \
+ " rs_domain='%s' (%s), rs_port=%d (%s), info='%s' (%s)" % (rs_name, type(rs_name), rs_stype,
+ type(rs_stype), rs_domain, type(rs_domain), rs_port, type(rs_port), info, type(info)))
group.AddService(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, 0, rs_name, rs_stype,
rs_domain, "", # let Avahi figure the 'host' out
dbus.UInt16(rs_port), info,)