From 9274d7fd9b9305135d44f36aa55ae67d1c38655f Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 20 Oct 2017 16:11:54 -0400 Subject: [PATCH] Fix proxying of Giphy requests. // FREEBIE --- Signal/src/network/GiphyAPI.swift | 19 +++++++++++-------- Signal/src/network/GiphyDownloader.swift | 13 ++++++++----- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Signal/src/network/GiphyAPI.swift b/Signal/src/network/GiphyAPI.swift index 6978a746c..c8958c91a 100644 --- a/Signal/src/network/GiphyAPI.swift +++ b/Signal/src/network/GiphyAPI.swift @@ -284,17 +284,20 @@ extension GiphyError: LocalizedError { 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 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 ] let sessionManager = AFHTTPSessionManager(baseURL:baseUrl as URL, - sessionConfiguration:sessionConf) + sessionConfiguration:configuration) sessionManager.requestSerializer = AFJSONRequestSerializer() sessionManager.responseSerializer = AFJSONResponseSerializer() diff --git a/Signal/src/network/GiphyDownloader.swift b/Signal/src/network/GiphyDownloader.swift index e926ee3b6..356856f9e 100644 --- a/Signal/src/network/GiphyDownloader.swift +++ b/Signal/src/network/GiphyDownloader.swift @@ -181,13 +181,16 @@ 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 + let proxyHost = "giphy-proxy-production.whispersystems.org" + let proxyPort = 80 configuration.connectionProxyDictionary = [ - kCFProxyHostNameKey as String: "giphy-proxy-production.whispersystems.org", - kCFProxyPortNumberKey as String: "80", - kCFProxyTypeKey as String: kCFProxyTypeHTTPS + "HTTPEnable": 1, + "HTTPProxy": proxyHost, + "HTTPPort": proxyPort, + "HTTPSEnable": 1, + "HTTPSProxy": proxyHost, + "HTTPSPort": proxyPort ] configuration.urlCache = nil configuration.requestCachePolicy = .reloadIgnoringCacheData