SH-3126 : Improve curl byte range call, test implementation in lltexturefetch (not final)
parent
2c0774302b
commit
efd19dddd9
|
|
@ -1074,7 +1074,9 @@ void LLCurlRequest::get(const std::string& url, LLCurl::ResponderPtr responder)
|
|||
{
|
||||
getByteRange(url, headers_t(), 0, -1, responder);
|
||||
}
|
||||
|
||||
|
||||
// Note: (length==0) is interpreted as "the rest of the file", i.e. the whole file if (offset==0) or
|
||||
// the remainder of the file if not.
|
||||
bool LLCurlRequest::getByteRange(const std::string& url,
|
||||
const headers_t& headers,
|
||||
S32 offset, S32 length,
|
||||
|
|
@ -1092,6 +1094,11 @@ bool LLCurlRequest::getByteRange(const std::string& url,
|
|||
std::string range = llformat("Range: bytes=%d-%d", offset,offset+length-1);
|
||||
easy->slist_append(range.c_str());
|
||||
}
|
||||
else if (offset > 0)
|
||||
{
|
||||
std::string range = llformat("Range: bytes=%d-", offset);
|
||||
easy->slist_append(range.c_str());
|
||||
}
|
||||
easy->setHeaders();
|
||||
bool res = addEasy(easy);
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -775,6 +775,7 @@ U32 LLTextureFetchWorker::calcWorkPriority()
|
|||
}
|
||||
|
||||
// mWorkMutex is locked
|
||||
// Merov : Change so to take into account size == 0 == max
|
||||
void LLTextureFetchWorker::setDesiredDiscard(S32 discard, S32 size)
|
||||
{
|
||||
bool prioritize = false;
|
||||
|
|
@ -1214,6 +1215,11 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
|||
// Will call callbackHttpGet when curl request completes
|
||||
std::vector<std::string> headers;
|
||||
headers.push_back("Accept: image/x-j2c");
|
||||
if (mRequestedSize == MAX_IMAGE_DATA_SIZE)
|
||||
{
|
||||
mRequestedSize = 0;
|
||||
llinfos << "Merov debug : getByteRange, offset = " << offset << ", id = " << mID << llendl;
|
||||
}
|
||||
res = mFetcher->mCurlGetRequest->getByteRange(mUrl, headers, offset, mRequestedSize,
|
||||
new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset, true));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue