From c6249d2214d0d01ba58d1866cf32f637bccc82d2 Mon Sep 17 00:00:00 2001 From: hogliux Date: Thu, 7 Jul 2016 15:31:14 +0100 Subject: [PATCH] Clear http headers after redirects --- modules/juce_core/native/juce_curl_Network.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/juce_core/native/juce_curl_Network.cpp b/modules/juce_core/native/juce_curl_Network.cpp index b06756f5b8..8051ed4a0b 100644 --- a/modules/juce_core/native/juce_curl_Network.cpp +++ b/modules/juce_core/native/juce_curl_Network.cpp @@ -143,7 +143,7 @@ private: && curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, StaticCurlWrite) == CURLE_OK && curl_easy_setopt (curl, CURLOPT_MAXREDIRS, static_cast (maxRedirects)) == CURLE_OK && curl_easy_setopt (curl, CURLOPT_USERAGENT, userAgent.toRawUTF8()) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, 1) == CURLE_OK) + && curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, (maxRedirects > 0 ? 1 : 0)) == CURLE_OK) { if (isPost) { @@ -441,10 +441,17 @@ private: size_t len = size * nmemb; - curlHeaders += String (ptr, len); + String header (ptr, len); + + if (! header.contains (":") && header.startsWithIgnoreCase ("HTTP/")) + curlHeaders.clear(); + else + curlHeaders += header; + return len; } + //============================================================================== // Static method wrappers static size_t StaticCurlWrite (char* ptr, size_t size, size_t nmemb, void* userdata)