diff --git a/confluent_server/confluent/discovery/protocols/slp.py b/confluent_server/confluent/discovery/protocols/slp.py index 8667feef..8f95d9c3 100644 --- a/confluent_server/confluent/discovery/protocols/slp.py +++ b/confluent_server/confluent/discovery/protocols/slp.py @@ -542,6 +542,8 @@ def active_scan(handler, protocol=None): for scanned in scan(): for addr in scanned['addresses']: ip = addr[0].partition('%')[0] # discard scope if present + if ip not in neighutil.neightable: + neighutil.update_neigh() if ip not in neighutil.neightable: continue if addr in known_peers: diff --git a/confluent_server/confluent/discovery/protocols/ssdp.py b/confluent_server/confluent/discovery/protocols/ssdp.py index b438af1a..de0fb8ef 100644 --- a/confluent_server/confluent/discovery/protocols/ssdp.py +++ b/confluent_server/confluent/discovery/protocols/ssdp.py @@ -62,6 +62,8 @@ def active_scan(handler, protocol=None): for scanned in scan(['urn:dmtf-org:service:redfish-rest:1']): for addr in scanned['addresses']: ip = addr[0].partition('%')[0] # discard scope if present + if ip not in neighutil.neightable: + neighutil.update_neigh() if ip not in neighutil.neightable: continue if addr in known_peers: @@ -311,6 +313,8 @@ def _parse_ssdp(peer, rsp, peerdata): ip = peer[0].partition('%')[0] nid = ip mac = None + if ip not in neighutil.neightable: + neighutil.update_neigh() if ip in neighutil.neightable: nid = neighutil.neightable[ip] mac = nid