Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/PresenceService/Buddy.py
diff options
context:
space:
mode:
authorDan Williams <dcbw@localhost.localdomain>2006-09-12 16:58:24 (GMT)
committer Dan Williams <dcbw@localhost.localdomain>2006-09-12 16:58:24 (GMT)
commit8c58dcd5401fd52a4d51f85f05120d84afbff354 (patch)
tree91895468ba320028a9f53d3c315c74324409ab93 /shell/PresenceService/Buddy.py
parentbf035f3685fed168807aa8569a6e8e5bc73c8f3f (diff)
spacing cleanups; refactor service addition so that service address checks aren't done for owner
Diffstat (limited to 'shell/PresenceService/Buddy.py')
-rw-r--r--shell/PresenceService/Buddy.py36
1 files changed, 26 insertions, 10 deletions
diff --git a/shell/PresenceService/Buddy.py b/shell/PresenceService/Buddy.py
index a000e00..5d13c29 100644
--- a/shell/PresenceService/Buddy.py
+++ b/shell/PresenceService/Buddy.py
@@ -163,17 +163,26 @@ class Buddy(object):
"""Adds a new service to this buddy's service list, returning
True if the service was successfully added, and False if it was not."""
if service.get_name() != self._nick_name:
- logging.error("Service and buddy nick names doesn't match: %s %s" % (service.get_name(), self._nick_name))
+ logging.error("Service and buddy nick names doesn't match: " \
+ "%s %s" % (service.get_name(), self._nick_name))
return False
+
source_addr = service.get_source_address()
if source_addr != self._address:
- logging.error("Service source and buddy address doesn't match: %s %s" % (source_addr, self._address))
- return False
+ logging.error("Service source and buddy address doesn't " \
+ "match: %s %s" % (source_addr, self._address))
+ return False
+ return self._internal_add_service(service)
+
+ def _internal_add_service(self, service):
service_key = self._get_service_key(service)
if service_key in self._services.keys():
- logging.error("Service already known: %s %s" % (service_key[0], service_key[1]))
+ logging.error("Service already known: %s %s" % (service_key[0],
+ service_key[1]))
return False
- logging.debug("Buddy %s added service type %s id %s" % (self._nick_name, service.get_type(), service.get_activity_id()))
+
+ logging.debug("Buddy %s added service type %s id %s" % (self._nick_name,
+ service.get_type(), service.get_activity_id()))
self._services[service_key] = service
service.set_owner(self)
@@ -297,20 +306,27 @@ class Owner(Buddy):
"""Adds a new service to this buddy's service list, returning
True if the service was successfully added, and False if it was not."""
if service.get_name() != self._nick_name:
+ logging.error("Service and buddy nick names doesn't match: " \
+ "%s %s" % (service.get_name(), self._nick_name))
return False
# The Owner initially doesn't have an address, so the first
# service added to the Owner determines the owner's address
source_addr = service.get_source_address()
- if self._address is None:
- if service.is_local():
- self._address = source_addr
- self._dbus_helper.PropertyChanged(['ip4_address'])
+ if self._address is None and service.is_local():
+ self._address = source_addr
+ self._dbus_helper.PropertyChanged(['ip4_address'])
+
+ # The owner bypasses address checks and only cares if
+ # avahi says the service is a local service
+ if not service.is_local():
+ logging.error("Cannot add remote service to owner object.")
+ return False
logging.debug("Adding owner service %s.%s at %s:%d." % (service.get_name(),
service.get_type(), service.get_source_address(),
service.get_port()))
- return Buddy.add_service(self, service)
+ return self._internal_add_service(service)
def is_owner(self):
return True