cleanupAddressSet function
Cleans up a relay's address set to remove private addresses and curtail addrsplosion.
Implementation
List<MultiAddr> cleanupAddressSet(List<MultiAddr> addrs) {
List<MultiAddr> publicAddrs = [];
List<MultiAddr> privateAddrs = [];
for (var a in addrs) {
if (isRelayAddress(a)) {
continue;
}
if (a.isPublic() || isDNSAddr(a)) {
publicAddrs.add(a);
continue;
}
if (a.isPrivate()) {
privateAddrs.add(a);
}
}
if (!hasAddrsplosion(publicAddrs)) {
return publicAddrs;
}
return sanitizeAddrsplodedSet(publicAddrs, privateAddrs);
}