Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/presence/Buddy.py
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-06-17 03:32:50 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-06-17 03:32:50 (GMT)
commitd353bd5ed1c3940f5459dc45d51dfc49921a71b4 (patch)
tree9f932d89f21e4c2080d079a2963c7c1fef2ff3ba /sugar/presence/Buddy.py
parent0871ca9f3d94862590e6acd6b894f5715506f846 (diff)
Validate service type and check for uid-based services first
Diffstat (limited to 'sugar/presence/Buddy.py')
-rw-r--r--sugar/presence/Buddy.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/sugar/presence/Buddy.py b/sugar/presence/Buddy.py
index de311f4..8172ccc 100644
--- a/sugar/presence/Buddy.py
+++ b/sugar/presence/Buddy.py
@@ -99,15 +99,20 @@ class Buddy(gobject.GObject):
short_stype = stype
if not short_stype:
raise RuntimeError("Need to specify a service type.")
+ # Ensure we're only passed short service types
+ (dec_uid, dec_stype) = Service._decompose_service_type(short_stype)
+ if dec_uid:
+ raise RuntimeError("Use plain service types please!")
+
uid = None
if activity:
uid = activity.get_id()
- if self._services.has_key(short_stype):
- return self._services[short_stype]
- elif uid:
+ if uid is not None:
for service in self._services.values():
if service.get_type() == short_stype and service.get_activity_uid() == uid:
return service
+ if self._services.has_key(short_stype):
+ return self._services[short_stype]
return None
def is_valid(self):