EXT-7145: FIXED: make viewer to handle "URL redirect " for http texture.
parent
3ce4cecd68
commit
9dada6bcc4
|
|
@ -365,6 +365,13 @@ U32 LLCurl::Easy::report(CURLcode code)
|
|||
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)
|
||||
{
|
||||
mResponder->completedRaw(responseCode, responseReason, mChannels, mOutput);
|
||||
|
|
|
|||
|
|
@ -328,11 +328,7 @@ public:
|
|||
partial = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
worker->setGetStatus(status, reason);
|
||||
// llwarns << status << ": " << reason << llendl;
|
||||
}
|
||||
|
||||
if (!success)
|
||||
{
|
||||
worker->setGetStatus(status, reason);
|
||||
|
|
@ -904,7 +900,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
|||
if (mGetStatus == HTTP_NOT_FOUND)
|
||||
{
|
||||
mHTTPFailCount = max_attempts = 1; // Don't retry
|
||||
//llinfos << "Texture missing from server (404): " << mUrl << llendl;
|
||||
llwarns << "Texture missing from server (404): " << mUrl << llendl;
|
||||
|
||||
//roll back to try UDP
|
||||
mState = INIT ;
|
||||
|
|
@ -921,6 +917,17 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
|||
max_attempts = mHTTPFailCount+1; // Keep retrying
|
||||
LL_INFOS_ONCE("Texture") << "Texture server busy (503): " << mUrl << LL_ENDL;
|
||||
}
|
||||
else if(mGetStatus >= HTTP_MULTIPLE_CHOICES && mGetStatus < HTTP_BAD_REQUEST) //http re-direct
|
||||
{
|
||||
++mHTTPFailCount;
|
||||
max_attempts = 5 ; //try at most 5 times to avoid infinite redirection loop.
|
||||
|
||||
llwarns << "HTTP GET failed because of redirection: " << mUrl
|
||||
<< " Status: " << mGetStatus << " Reason: '" << mGetReason << llendl ;
|
||||
|
||||
//assign to the new url
|
||||
mUrl = mGetReason ;
|
||||
}
|
||||
else
|
||||
{
|
||||
const S32 HTTP_MAX_RETRY_COUNT = 3;
|
||||
|
|
@ -930,6 +937,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
|||
<< " Status: " << mGetStatus << " Reason: '" << mGetReason << "'"
|
||||
<< " Attempt:" << mHTTPFailCount+1 << "/" << max_attempts << llendl;
|
||||
}
|
||||
|
||||
if (mHTTPFailCount >= max_attempts)
|
||||
{
|
||||
if (cur_size > 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue