diff --git a/confluent_server/confluent/discovery/protocols/ssdp.py b/confluent_server/confluent/discovery/protocols/ssdp.py index dcb2881f..684f8c00 100644 --- a/confluent_server/confluent/discovery/protocols/ssdp.py +++ b/confluent_server/confluent/discovery/protocols/ssdp.py @@ -108,12 +108,15 @@ def _process_snoop(peer, rsp, mac, known_peers, newmacs, peerbymacaddress, byeha if not value.endswith('/DeviceDescription.json'): return if handler: - retdata = check_fish(('/DeviceDescription.json', peerdata)) - if retdata: - known_peers.add(peer) - newmacs.add(mac) - peerbymacaddress[mac] = retdata - machandlers[mac] = handler + eventlet.spawn_n(check_fish_handler, handler, peerdata, known_peers, newmacs, peerbymacaddress, machandlers, mac) + +def check_fish_handler(handler, peerdata, known_peers, newmacs, peerbymacaddress, machandlers, mac): + retdata = check_fish(('/DeviceDescription.json', peerdata)) + if retdata: + known_peers.add(peer) + newmacs.add(mac) + peerbymacaddress[mac] = retdata + machandlers[mac] = handler def snoop(handler, byehandler=None, protocol=None, uuidlookup=None):