You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SignalServiceKit/src/Network/ReverseProxy.swift

55 lines
1.8 KiB
Swift

//
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc
public class ReverseProxy: NSObject {
@available(*, unavailable, message:"do not instantiate this class.")
private override init() {
}
@objc
public class func sessionConfiguration() -> URLSessionConfiguration {
let configuration = URLSessionConfiguration.ephemeral
let proxyHost = "contentproxy.signal.org"
let proxyPort = 443
configuration.connectionProxyDictionary = [
"HTTPEnable": 1,
"HTTPProxy": proxyHost,
"HTTPPort": proxyPort,
"HTTPSEnable": 1,
"HTTPSProxy": proxyHost,
"HTTPSPort": proxyPort
]
return configuration
}
@objc
public class func sessionManager(baseUrl baseUrlString: String?) -> AFHTTPSessionManager? {
guard let baseUrlString = baseUrlString else {
return AFHTTPSessionManager(baseURL: nil, sessionConfiguration: sessionConfiguration())
}
guard let baseUrl = URL(string: baseUrlString) else {
owsFailDebug("Invalid base URL.")
return nil
}
let sessionManager = AFHTTPSessionManager(baseURL: baseUrl,
sessionConfiguration: sessionConfiguration())
return sessionManager
}
@objc
public class func jsonSessionManager(baseUrl: String) -> AFHTTPSessionManager? {
guard let sessionManager = self.sessionManager(baseUrl: baseUrl) else {
owsFailDebug("Could not create session manager")
return nil
}
sessionManager.requestSerializer = AFJSONRequestSerializer()
sessionManager.responseSerializer = AFJSONResponseSerializer()
return sessionManager
}
}