diff --git a/mac/Sources/Byre/Tailnet.swift b/mac/Sources/Byre/Tailnet.swift index e8fad82..5992d6f 100644 --- a/mac/Sources/Byre/Tailnet.swift +++ b/mac/Sources/Byre/Tailnet.swift @@ -191,10 +191,14 @@ final class Tailnet { private func discover() async { while true { - guard running else { + guard running, !peers.isEmpty else { try? await Task.sleep(for: .milliseconds(500)) continue } + for origin in Servers.shared.origins where !peers.contains(URL(string: origin)!.host()!.lowercased()) { + log.notice("forgetting \(origin, privacy: .public), which left the tailnet") + Servers.shared.remove(origin) + } let candidates = servers.filter { !Servers.shared.origins.contains($0.absoluteString) } let found = await withTaskGroup(of: URL?.self) { group in for origin in candidates {