diff --git a/Signal/src/network/GiphyAPI.swift b/Signal/src/network/GiphyAPI.swift index 6978a746c..09f295a3f 100644 --- a/Signal/src/network/GiphyAPI.swift +++ b/Signal/src/network/GiphyAPI.swift @@ -279,22 +279,28 @@ extension GiphyError: LocalizedError { private let kGiphyBaseURL = "https://api.giphy.com/" + public class func giphySessionConfiguration() -> URLSessionConfiguration { + let configuration = URLSessionConfiguration.ephemeral + let proxyHost = "giphy-proxy-production.whispersystems.org" + let proxyPort = 80 + configuration.connectionProxyDictionary = [ + "HTTPEnable": 1, + "HTTPProxy": proxyHost, + "HTTPPort": proxyPort, + "HTTPSEnable": 1, + "HTTPSProxy": proxyHost, + "HTTPSPort": proxyPort + ] + return configuration + } + private func giphyAPISessionManager() -> AFHTTPSessionManager? { guard let baseUrl = NSURL(string:kGiphyBaseURL) else { Logger.error("\(TAG) Invalid base URL.") return nil } - // TODO: We need to verify that this session configuration properly - // proxies all requests. - let sessionConf = URLSessionConfiguration.ephemeral - sessionConf.connectionProxyDictionary = [ - kCFProxyHostNameKey as String: "giphy-proxy-production.whispersystems.org", - kCFProxyPortNumberKey as String: "80", - kCFProxyTypeKey as String: kCFProxyTypeHTTPS - ] - let sessionManager = AFHTTPSessionManager(baseURL:baseUrl as URL, - sessionConfiguration:sessionConf) + sessionConfiguration:GiphyAPI.giphySessionConfiguration()) sessionManager.requestSerializer = AFJSONRequestSerializer() sessionManager.responseSerializer = AFJSONResponseSerializer() diff --git a/Signal/src/network/GiphyDownloader.swift b/Signal/src/network/GiphyDownloader.swift index e926ee3b6..2a624eb07 100644 --- a/Signal/src/network/GiphyDownloader.swift +++ b/Signal/src/network/GiphyDownloader.swift @@ -181,17 +181,11 @@ extension URLSessionTask { private let kGiphyBaseURL = "https://api.giphy.com/" private func giphyDownloadSession() -> URLSession? { - // TODO: We need to verify that this session configuration properly - // proxies all requests. - let configuration = URLSessionConfiguration.ephemeral - configuration.connectionProxyDictionary = [ - kCFProxyHostNameKey as String: "giphy-proxy-production.whispersystems.org", - kCFProxyPortNumberKey as String: "80", - kCFProxyTypeKey as String: kCFProxyTypeHTTPS - ] + let configuration = GiphyAPI.giphySessionConfiguration() configuration.urlCache = nil configuration.requestCachePolicy = .reloadIgnoringCacheData - let session = URLSession(configuration:configuration, delegate:self, delegateQueue:operationQueue) + let session = URLSession(configuration:configuration, + delegate:self, delegateQueue:operationQueue) return session }