skipPeer method

bool skipPeer(
  1. List<MultiAddr> addrs
)
override

Implementation

bool skipPeer(List<MultiAddr> addrs) {
  final List<String> localPublicIPs = [];
  for (final lAddr in host.addrs) {
    if (!lAddr.hasProtocol('p2p-circuit') && lAddr.isPublic()) {
      final lIP = lAddr.toIP();
      if (lIP != null) {
        localPublicIPs.add(lIP.address);
      }
    }
  }

  bool goodPublicFound = false;
  for (final addr in addrs) {
    if (!addr.hasProtocol('p2p-circuit') && addr.isPublic()) {
      final aIP = addr.toIP();
      if (aIP == null) {
        continue;
      }

      if (localPublicIPs.contains(aIP.address)) {
        return true; // Peer has one of our public IPs
      }
      goodPublicFound = true;
    }
  }

  if (allowSelfDials) {
    return false;
  }

  return !goodPublicFound; // Skip if no usable public address was found that isn't ours
}