diff options
author | Don Kjer <don@lindenlab.com> | 2007-09-14 21:13:20 +0000 |
---|---|---|
committer | Don Kjer <don@lindenlab.com> | 2007-09-14 21:13:20 +0000 |
commit | 13c391f1984bb8cb9d67a7729af2ee5714409215 (patch) | |
tree | 112edff1d25adabb4893e6746ba76a4182865f8a /indra/llmessage | |
parent | b3d807d5ff8dca6c891e9a5e0ddc7bc147d69f8c (diff) |
EFFECTIVE MERGE: svn merge -r 68118:68999 svn+ssh://svn/svn/linden/branches/maintenance
ACTUAL MERGE: svn merge -r 69685:69687 svn+ssh://svn/svn/linden/branches/release-r69649-maintenance-sync
EQUIVALENT TO: svn merge -r 68118:69663 svn+ssh://svn/svn/linden/branches/maintenance-r68999
Diffstat (limited to 'indra/llmessage')
-rw-r--r-- | indra/llmessage/llhttpassetstorage.cpp | 33 | ||||
-rw-r--r-- | indra/llmessage/llmessageconfig.cpp | 9 | ||||
-rw-r--r-- | indra/llmessage/llpumpio.cpp | 5 | ||||
-rw-r--r-- | indra/llmessage/message.cpp | 8 |
4 files changed, 35 insertions, 20 deletions
diff --git a/indra/llmessage/llhttpassetstorage.cpp b/indra/llmessage/llhttpassetstorage.cpp index 23b90aef71..7b07dfd0e0 100644 --- a/indra/llmessage/llhttpassetstorage.cpp +++ b/indra/llmessage/llhttpassetstorage.cpp @@ -321,8 +321,15 @@ size_t LLHTTPAssetRequest::readCompressedData(void* data, size_t size) S32 to_read = llmin(COMPRESSED_INPUT_BUFFER_SIZE, (S32)(mVFile->getSize() - mVFile->tell())); - mVFile->read((U8*)mZInputBuffer, to_read); /*Flawfinder: ignore*/ - + if ( to_read > 0 ) + { + mVFile->read((U8*)mZInputBuffer, to_read); /*Flawfinder: ignore*/ + } + else + { + llwarns << "LLHTTPAssetRequest::readCompressedData has zero read length" << llendl; + break; + } mZStream.next_in = (Bytef*)mZInputBuffer; mZStream.avail_in = mVFile->getLastBytesRead(); @@ -332,7 +339,7 @@ size_t LLHTTPAssetRequest::readCompressedData(void* data, size_t size) int r = deflate(&mZStream, mZInputExhausted ? Z_FINISH : Z_NO_FLUSH); - if (r == Z_STREAM_END) + if (r == Z_STREAM_END || r < 0) { break; } @@ -345,15 +352,20 @@ size_t LLHTTPAssetRequest::readCompressedData(void* data, size_t size) size_t LLHTTPAssetRequest::curlCompressedUploadCallback( void *data, size_t size, size_t nmemb, void *user_data) { - if (!gAssetStorage) + size_t num_read = 0; + + if (gAssetStorage) { - return 0; + CURL *curl_handle = (CURL *)user_data; + LLHTTPAssetRequest *req = NULL; + curl_easy_getinfo(curl_handle, CURLINFO_PRIVATE, &req); + if (req) + { + num_read = req->readCompressedData(data, size * nmemb); + } } - CURL *curl_handle = (CURL *)user_data; - LLHTTPAssetRequest *req = NULL; - curl_easy_getinfo(curl_handle, CURLINFO_PRIVATE, &req); - return req->readCompressedData(data, size * nmemb); + return num_read; } ///////////////////////////////////////////////////////////////////////////////// @@ -511,9 +523,8 @@ void LLHTTPAssetStorage::storeAssetData( { callback(LLUUID::null, user_data, LL_ERR_CANNOT_OPEN_FILE, LL_EXSTAT_BLOCKED_FILE); } + delete legacy; } - // Coverity CID-269 says there's a leak of 'legacy' here, but - // legacyStoreDataCallback() will delete it somewhere down the line. } // virtual diff --git a/indra/llmessage/llmessageconfig.cpp b/indra/llmessage/llmessageconfig.cpp index bfaec7c8fc..7e7d956abf 100644 --- a/indra/llmessage/llmessageconfig.cpp +++ b/indra/llmessage/llmessageconfig.cpp @@ -30,10 +30,10 @@ class LLMessageConfigFile : public LLLiveFile { public: LLMessageConfigFile() - : LLLiveFile(fileName(), messageConfigRefreshRate) + : LLLiveFile(filename(), messageConfigRefreshRate) { } - static std::string fileName(); + static std::string filename(); LLSD mMessages; std::string mServerDefault; @@ -52,7 +52,7 @@ public: LLSD mCapBans; }; -std::string LLMessageConfigFile::fileName() +std::string LLMessageConfigFile::filename() { std::ostringstream ostr; ostr << sConfigDir//gAppSimp->getOption("configdir").asString() @@ -73,9 +73,10 @@ void LLMessageConfigFile::loadFile() LLSD data; { llifstream file(filename().c_str()); + if (file.is_open()) { - llinfos << "Loading message.xml file at " << fileName() << llendl; + llinfos << "Loading message.xml file at " << filename() << llendl; LLSDSerialize::fromXML(data, file); } diff --git a/indra/llmessage/llpumpio.cpp b/indra/llmessage/llpumpio.cpp index 4fa3fab1c9..c6c56218b9 100644 --- a/indra/llmessage/llpumpio.cpp +++ b/indra/llmessage/llpumpio.cpp @@ -664,8 +664,9 @@ void LLPumpIO::initialize(apr_pool_t* pool) LLMemType m1(LLMemType::MTYPE_IO_PUMP); if(!pool) return; #if LL_THREADS_APR - apr_thread_mutex_create(&mChainsMutex, APR_THREAD_MUTEX_DEFAULT, pool); - apr_thread_mutex_create(&mCallbackMutex, APR_THREAD_MUTEX_DEFAULT, pool); + // SJB: Windows defaults to NESTED and OSX defaults to UNNESTED, so use UNNESTED explicitly. + apr_thread_mutex_create(&mChainsMutex, APR_THREAD_MUTEX_UNNESTED, pool); + apr_thread_mutex_create(&mCallbackMutex, APR_THREAD_MUTEX_UNNESTED, pool); #endif mPool = pool; } diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp index c6911515a6..5077354533 100644 --- a/indra/llmessage/message.cpp +++ b/indra/llmessage/message.cpp @@ -1135,9 +1135,11 @@ LLHTTPClient::ResponderPtr LLMessageSystem::createResponder(const std::string& n } else { - llwarns << "LLMessageSystem::sendMessage: Sending unreliable " - << mMessageBuilder->getMessageName() << " message via HTTP" - << llendl; + // These messages aren't really unreliable, they just weren't + // explicitly sent as reliable, so they don't have a callback +// llwarns << "LLMessageSystem::sendMessage: Sending unreliable " +// << mMessageBuilder->getMessageName() << " message via HTTP" +// << llendl; return new LLFnPtrResponder(NULL, NULL, mMessageBuilder->getMessageName()); } |