diff --git a/confluent_server/confluent/discovery/protocols/slp.py b/confluent_server/confluent/discovery/protocols/slp.py index b44c6c2d..4fd1391c 100644 --- a/confluent_server/confluent/discovery/protocols/slp.py +++ b/confluent_server/confluent/discovery/protocols/slp.py @@ -111,7 +111,8 @@ def _parse_slp_packet(packet, peer, rsps, xidmap, defer=None, sock=None): if defer is None: identifier = addr else: - sock.sendto(b'\x00', peer) + probepeer = (peer[0], struct.unpack('H', os.urandom(2))[0] | 1025) + peer[2:] + sock.sendto(b'\x00', probepeer) defer.append((packet, peer)) return if (identifier, parsed['xid']) in rsps: @@ -485,7 +486,8 @@ def snoop(handler, protocol=None): continue mac = neighutil.get_hwaddr(peer[0]) if not mac: - s.sendto(b'\x00', peer) + probepeer = (peer[0], struct.unpack('H', os.urandom(2))[0] | 1025) + peer[2:] + s.sendto(b'\x00', probepeer) deferpeers.append(peer) continue process_peer(newmacs, known_peers, peerbymacaddress, peer)