diff --git a/TelegramCore/Network.swift b/TelegramCore/Network.swift index 90badf42d2..e2c4077fca 100644 --- a/TelegramCore/Network.swift +++ b/TelegramCore/Network.swift @@ -748,12 +748,18 @@ public final class Network: NSObject, MTRequestMessageServiceDelegate { let address = MTDatacenterAddress(ip: host, port: UInt16(port), preferForMedia: false, restrictToTcp: false, cdn: false, preferForProxy: false, secret: secret) self.context.addAddressForDatacenter(withId: Int(datacenterId), address: address) - if let currentScheme = self.context.transportSchemeForDatacenter(withId: Int(datacenterId), media: false, isProxy: false), let currentAddress = currentScheme.address { - if !currentAddress.isEqual(to: address) { - let scheme = MTTransportScheme(transport: currentScheme.transportClass, address: address, media: false) - self.context.updateTransportSchemeForDatacenter(withId: Int(datacenterId), transportScheme: scheme, media: false, isProxy: false) + let currentSchemes = self.context.transportSchemesForDatacenter(withId: Int(datacenterId), media: false, enforceMedia: false, isProxy: false) + var found = false + for scheme in currentSchemes { + if scheme.address.isEqual(to: address) { + found = true + break } } + if !found { + let scheme = MTTransportScheme(transport: MTTcpTransport.self, address: address, media: false) + self.context.updateTransportSchemeForDatacenter(withId: Int(datacenterId), transportScheme: scheme, media: false, isProxy: false) + } } }