diff options
author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2013-03-19 15:43:19 +0200 |
---|---|---|
committer | Mark Ryan <mark.d.ryan@intel.com> | 2013-03-19 15:54:43 +0100 |
commit | 3d25523d064dc8c6e0583f83aea614f5861e4156 (patch) | |
tree | 5c000bccd2280a661ad4236cef85e1ce2243eae0 | |
parent | 5d8f94979e86a1d87d86e757f811fa6ea797d60e (diff) | |
download | dleyna-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.py | 15 |
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) |