From 5580916e52d062c35bb3278e9a2ce2d030b38e57 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Va=CC=81clav=20Slavi=CC=81k?= Date: Sat, 29 Oct 2016 18:08:35 +0200 Subject: [PATCH] =?utf8?q?[PATCH]=20Don=E2=80=99t=20use=20http=5Fclient=5F?= =?utf8?q?config=20when=20not=20needed?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Don’t pass default http_client_config to http_client if not needed, i.e. elsewhere than Windows. This fixes a crash in C++REST SDK reported by Debian. Cause is unknown, but related to http_client_config and when that is not used on Linux anyway, why make things harder for everybody. Gbp-Pq: Name e5d68f3851341c59c712763e69839042e630555a.patch --- src/http_client_casablanca.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/http_client_casablanca.cpp b/src/http_client_casablanca.cpp index 056fc0a..a4d66e7 100644 --- a/src/http_client_casablanca.cpp +++ b/src/http_client_casablanca.cpp @@ -169,7 +169,14 @@ class http_client::impl { public: impl(http_client& owner, const std::string& url_prefix, int flags) - : m_owner(owner), m_native(sanitize_url(url_prefix, flags), get_client_config()) + : m_owner(owner), + m_native + ( + sanitize_url(url_prefix, flags) + #ifdef _WIN32 + , get_client_config() + #endif + ) { #define make_wide_str(x) make_wide_str_(x) #define make_wide_str_(x) L ## x @@ -361,11 +368,12 @@ private: return to_string_t(url); } +#ifdef _WIN32 // prepare WinHttp configuration static http::client::http_client_config get_client_config() { http::client::http_client_config c; - #ifdef _WIN32 + // WinHttp doesn't share WinInet/MSIE's proxy settings and has its own, // but many users don't have properly configured both. Adopting proxy // settings like this in desktop software is recommended behavior, see @@ -385,12 +393,9 @@ private: c.set_proxy(uri(L"//" + std::wstring(ieConfig.lpszProxy))); } } - #endif return c; } -private: -#ifdef _WIN32 static bool is_windows_xp() { OSVERSIONINFOEX info; -- 2.30.2