From c163ec1dbf873781b77ea67d4449d643c166c0c4 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Tue, 5 May 2020 16:35:59 +0200 Subject: [PATCH] qnetworkproxy_mac - do not use the deprecated API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CFURLStringByAddingXXX was deprecated, so we use QUrl combined with existing QString-based converters (from/to CFStringRef). Pick-to: 5.15 Task-number: QTBUG-83992 Change-Id: I6f1a3fdafa9532bb7816a1262169df3421169cb7 Reviewed-by: Tor Arne Vestbø --- src/network/kernel/qnetworkproxy_mac.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/network/kernel/qnetworkproxy_mac.cpp b/src/network/kernel/qnetworkproxy_mac.cpp index 3fcd9299f39..e4d2663f7a5 100644 --- a/src/network/kernel/qnetworkproxy_mac.cpp +++ b/src/network/kernel/qnetworkproxy_mac.cpp @@ -203,6 +203,15 @@ void proxyAutoConfigCallback(void *client, CFArrayRef proxylist, CFErrorRef erro info->proxies = proxylist; } } + +QCFType stringByAddingPercentEscapes(CFStringRef originalPath) +{ + Q_ASSERT(originalPath); + const auto qtPath = QString::fromCFString(originalPath); + const auto escaped = QString::fromUtf8(QUrl::toPercentEncoding(qtPath)); + return escaped.toCFString(); +} + } // anon namespace QList macQueryInternal(const QNetworkProxyQuery &query) @@ -228,9 +237,7 @@ QList macQueryInternal(const QNetworkProxyQuery &query) // kSCPropNetProxiesProxyAutoConfigURLString returns the URL string // as entered in the system proxy configuration dialog CFStringRef pacLocationSetting = (CFStringRef)CFDictionaryGetValue(dict, kSCPropNetProxiesProxyAutoConfigURLString); - QCFType cfPacLocation = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, pacLocationSetting, NULL, NULL, - kCFStringEncodingUTF8); - + auto cfPacLocation = stringByAddingPercentEscapes(pacLocationSetting); QCFType pacData; QCFType pacUrl = CFURLCreateWithString(kCFAllocatorDefault, cfPacLocation, NULL); if (!pacUrl) {