summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Kukkonen <jussi.kukkonen@intel.com>2013-03-19 15:43:19 +0200
committerMark Ryan <mark.d.ryan@intel.com>2013-03-19 15:54:43 +0100
commit3d25523d064dc8c6e0583f83aea614f5861e4156 (patch)
tree5c000bccd2280a661ad4236cef85e1ce2243eae0
parent5d8f94979e86a1d87d86e757f811fa6ea797d60e (diff)
downloaddleyna-control-3d25523d064dc8c6e0583f83aea614f5861e4156.tar.gz
[UPnP] Do not make duplicate found_server_callback() calls
Use the same code for GetServers() callback and the FoundServer handler: GetServers() code path wasn't checking for existing servers, so duplicates could appear with good timing. Also mark signal handlers as 'private' methods. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-rw-r--r--src/msd/msd_upnp.py15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/msd/msd_upnp.py b/src/msd/msd_upnp.py
index 76979e5..8534680 100644
--- a/src/msd/msd_upnp.py
+++ b/src/msd/msd_upnp.py
@@ -69,17 +69,12 @@ class State(object):
def __on_get_servers_reply (self, servers):
for path in servers:
- try:
- self.__servers[path] = State.__create_server_tuple(path)
- if self.__found_server_cb:
- self.__found_server_cb(path)
- except Exception:
- pass
+ self.__found_server(path)
def __on_get_servers_error (self, error):
print "Manager.GetServers() failed: %s" % error
- def found_server(self, path):
+ def __found_server(self, path):
if not path in self.__servers:
try:
self.__servers[path] = State.__create_server_tuple(path)
@@ -88,7 +83,7 @@ class State(object):
finally:
pass
- def lost_server(self, path):
+ def __lost_server(self, path):
if path in self.__servers:
del self.__servers[path]
if self.__lost_server_cb:
@@ -103,8 +98,8 @@ class State(object):
self.__found_server_cb = None
self.__lost_server_cb = None
- self.__manager.connect_to_signal("FoundServer", self.found_server)
- self.__manager.connect_to_signal("LostServer", self.lost_server)
+ self.__manager.connect_to_signal("FoundServer", self.__found_server)
+ self.__manager.connect_to_signal("LostServer", self.__lost_server)
self.__manager.GetServers(reply_handler=self.__on_get_servers_reply,
error_handler=self.__on_get_servers_error)