From 3d25523d064dc8c6e0583f83aea614f5861e4156 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Tue, 19 Mar 2013 15:43:19 +0200 Subject: [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 --- src/msd/msd_upnp.py | 15 +++++---------- 1 file 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) -- cgit v1.2.1