summaryrefslogtreecommitdiff
path: root/indra/llmessage/llcurl.cpp
diff options
context:
space:
mode:
authorPalmer <palmer@lindenlab.com>2010-07-22 15:20:45 -0700
committerPalmer <palmer@lindenlab.com>2010-07-22 15:20:45 -0700
commit7d73afe8957b64a5b3620d162265484618aee9fc (patch)
treea1a260bbca0cd034b78f4a65834775fcf2208a0c /indra/llmessage/llcurl.cpp
parent35837f2d382120088572ec87006238c79973e493 (diff)
EXT-7145 - Handle http redirects in viewer properly. Didn't work before.
Reviewed by Bao and Babbage
Diffstat (limited to 'indra/llmessage/llcurl.cpp')
-rw-r--r--indra/llmessage/llcurl.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp
index 36874a5d48..a093e45860 100644
--- a/indra/llmessage/llcurl.cpp
+++ b/indra/llmessage/llcurl.cpp
@@ -364,13 +364,6 @@ U32 LLCurl::Easy::report(CURLcode code)
responseCode = 499;
responseReason = strerror(code) + " : " + mErrorBuffer;
}
-
- if(responseCode >= 300 && responseCode < 400) //redirect
- {
- char new_url[512] ;
- curl_easy_getinfo(mCurlEasyHandle, CURLINFO_REDIRECT_URL, new_url);
- responseReason = new_url ; //get the new URL.
- }
if (mResponder)
{
@@ -469,6 +462,13 @@ void LLCurl::Easy::prepRequest(const std::string& url,
setopt(CURLOPT_HEADERFUNCTION, (void*)&curlHeaderCallback);
setopt(CURLOPT_HEADERDATA, (void*)this);
+ // Allow up to five redirects
+ if(responder && responder->followRedir())
+ {
+ setopt(CURLOPT_FOLLOWLOCATION, 1);
+ setopt(CURLOPT_MAXREDIRS, MAX_REDIRECTS);
+ }
+
setErrorBuffer();
setCA();
@@ -1061,3 +1061,4 @@ void LLCurl::cleanupClass()
curl_global_cleanup();
}
+const unsigned int LLCurl::MAX_REDIRECTS = 5; \ No newline at end of file