|
|
|
@ -97,23 +97,25 @@ public final class OpenGroupManager: NSObject {
|
|
|
|
|
public func hasExistingOpenGroup(roomToken: String, server: String, publicKey: String, using transaction: YapDatabaseReadWriteTransaction, dependencies: OGMDependencies = OGMDependencies()) -> Bool {
|
|
|
|
|
guard let serverUrl: URL = URL(string: server) else { return false }
|
|
|
|
|
|
|
|
|
|
let schemeFreeServer: String = (serverUrl.host ?? server)
|
|
|
|
|
let schemeFreeDefaultServer: String = OpenGroupAPI.defaultServer.substring(from: "http://".count)
|
|
|
|
|
let serverHost: String = (serverUrl.host ?? server)
|
|
|
|
|
let serverPort: String = (serverUrl.port.map { ":\($0)" } ?? "")
|
|
|
|
|
let defaultServerHost: String = OpenGroupAPI.defaultServer.substring(from: "http://".count)
|
|
|
|
|
var serverOptions: Set<String> = Set([
|
|
|
|
|
schemeFreeServer,
|
|
|
|
|
"http://\(schemeFreeServer)",
|
|
|
|
|
"https://\(schemeFreeServer)"
|
|
|
|
|
server,
|
|
|
|
|
"\(serverHost)\(serverPort)",
|
|
|
|
|
"http://\(serverHost)\(serverPort)",
|
|
|
|
|
"https://\(serverHost)\(serverPort)"
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
if schemeFreeServer == OpenGroupAPI.legacyDefaultServerDNS {
|
|
|
|
|
if serverHost == OpenGroupAPI.legacyDefaultServerDNS {
|
|
|
|
|
let defaultServerOptions: Set<String> = Set([
|
|
|
|
|
schemeFreeDefaultServer,
|
|
|
|
|
defaultServerHost,
|
|
|
|
|
OpenGroupAPI.defaultServer,
|
|
|
|
|
"https://\(schemeFreeDefaultServer)"
|
|
|
|
|
"https://\(defaultServerHost)"
|
|
|
|
|
])
|
|
|
|
|
serverOptions = serverOptions.union(defaultServerOptions)
|
|
|
|
|
}
|
|
|
|
|
else if schemeFreeServer == schemeFreeDefaultServer {
|
|
|
|
|
else if serverHost == defaultServerHost {
|
|
|
|
|
let legacyServerOptions: Set<String> = Set([
|
|
|
|
|
OpenGroupAPI.legacyDefaultServerDNS,
|
|
|
|
|
"http://\(OpenGroupAPI.legacyDefaultServerDNS)",
|
|
|
|
|