diff --git a/SignalServiceKit/src/Loki/API/LokiAPI+SwarmAPI.swift b/SignalServiceKit/src/Loki/API/LokiAPI+SwarmAPI.swift index b66516844..4cf2d374d 100644 --- a/SignalServiceKit/src/Loki/API/LokiAPI+SwarmAPI.swift +++ b/SignalServiceKit/src/Loki/API/LokiAPI+SwarmAPI.swift @@ -132,42 +132,6 @@ public extension LokiAPI { } } - internal static func getFileServerProxy() -> Promise { - let (promise, seal) = Promise.pending() - func getVersion(for snode: LokiAPITarget) -> Promise { - if let version = snodeVersion[snode] { - return Promise { $0.fulfill(version) } - } else { - let url = URL(string: "\(snode.address):\(snode.port)/get_stats/v1")! - let request = TSRequest(url: url) - return TSNetworkManager.shared().perform(request, withCompletionQueue: DispatchQueue.global()).map(on: DispatchQueue.global()) { intermediate in - let rawResponse = intermediate.responseObject - guard let json = rawResponse as? JSON, let version = json["version"] as? String else { throw LokiAPIError.missingSnodeVersion } - snodeVersion[snode] = version - return version - } - } - } - getRandomSnode().then(on: DispatchQueue.global()) { snode -> Promise in - return getVersion(for: snode).then(on: DispatchQueue.global()) { version -> Promise in - if version >= "2.0.2" { - print("[Loki] Using file server proxy with version number \(version).") - return Promise { $0.fulfill(snode) } - } else { - print("[Loki] Rejecting file server proxy with version number \(version).") - return getFileServerProxy() - } - }.recover(on: DispatchQueue.global()) { _ in - return getFileServerProxy() - } - }.done(on: DispatchQueue.global()) { snode in - seal.fulfill(snode) - }.catch(on: DispatchQueue.global()) { error in - seal.reject(error) - } - return promise - } - // MARK: Public API @objc public static func clearSnodePool() { snodePool.removeAll() diff --git a/SignalServiceKit/src/Loki/API/LokiFileServerProxy.swift b/SignalServiceKit/src/Loki/API/LokiFileServerProxy.swift index 9588ecabf..f276d7af3 100644 --- a/SignalServiceKit/src/Loki/API/LokiFileServerProxy.swift +++ b/SignalServiceKit/src/Loki/API/LokiFileServerProxy.swift @@ -49,7 +49,7 @@ internal class LokiFileServerProxy : LokiHTTPClient { DispatchQueue.global(qos: .userInitiated).async { let uncheckedSymmetricKey = try? Curve25519.generateSharedSecret(fromPublicKey: LokiFileServerProxy.fileServerPublicKey, privateKey: keyPair.privateKey) guard let symmetricKey = uncheckedSymmetricKey else { return seal.reject(Error.symmetricKeyGenerationFailed) } - LokiAPI.getFileServerProxy().then(on: DispatchQueue.global()) { proxy -> Promise in + LokiAPI.getRandomSnode().then(on: DispatchQueue.global()) { proxy -> Promise in let url = "\(proxy.address):\(proxy.port)/file_proxy" guard let urlAsString = request.url?.absoluteString, let serverURLEndIndex = urlAsString.range(of: server)?.upperBound, serverURLEndIndex < urlAsString.endIndex else { throw Error.endpointParsingFailed }