diff --git a/confluent_server/confluent/discovery/protocols/slp.py b/confluent_server/confluent/discovery/protocols/slp.py index 588a4bc4..7866e1d9 100644 --- a/confluent_server/confluent/discovery/protocols/slp.py +++ b/confluent_server/confluent/discovery/protocols/slp.py @@ -468,15 +468,16 @@ def snoop(handler, protocol=None): # will now yield dupe info over time known_peers = set([]) peerbymacaddress = {} - neighutil.update_neigh() while r: for s in r: (rsp, peer) = s.recvfrom(9000) ip = peer[0].partition('%')[0] - if ip not in neighutil.neightable: - continue if peer in known_peers: continue + if ip not in neighutil.neightable: + neighutil.update_neigh() + if ip not in neighutil.neightable: + continue known_peers.add(peer) mac = neighutil.neightable[ip] if mac in peerbymacaddress: diff --git a/confluent_server/confluent/discovery/protocols/ssdp.py b/confluent_server/confluent/discovery/protocols/ssdp.py index c5fe81c4..aac0e375 100644 --- a/confluent_server/confluent/discovery/protocols/ssdp.py +++ b/confluent_server/confluent/discovery/protocols/ssdp.py @@ -118,7 +118,6 @@ def snoop(handler, byehandler=None, protocol=None, uuidlookup=None): newmacs = set([]) machandlers = {} r, _, _ = select.select((net4, net6), (), (), 60) - neighutil.update_neigh() while r: for s in r: (rsp, peer) = s.recvfrom(9000) @@ -128,10 +127,12 @@ def snoop(handler, byehandler=None, protocol=None, uuidlookup=None): method, _, _ = rsp[0].split(b' ', 2) if method == b'NOTIFY': ip = peer[0].partition('%')[0] - if ip not in neighutil.neightable: - continue if peer in known_peers: continue + if ip not in neighutil.neightable: + neighutil.update_neigh() + if ip not in neighutil.neightable: + continue mac = neighutil.neightable[ip] known_peers.add(peer) newmacs.add(mac)