summaryrefslogtreecommitdiff
path: root/indra/llmessage/llhttpassetstorage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage/llhttpassetstorage.cpp')
-rwxr-xr-x[-rw-r--r--]indra/llmessage/llhttpassetstorage.cpp194
1 files changed, 95 insertions, 99 deletions
diff --git a/indra/llmessage/llhttpassetstorage.cpp b/indra/llmessage/llhttpassetstorage.cpp
index fc326790eb..e202154445 100644..100755
--- a/indra/llmessage/llhttpassetstorage.cpp
+++ b/indra/llmessage/llhttpassetstorage.cpp
@@ -3,31 +3,25 @@
* @brief Subclass capable of loading asset data to/from an external
* source. Currently, a web server accessed via curl
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -39,30 +33,26 @@
#include "indra_constants.h"
#include "message.h"
+#include "llproxy.h"
#include "llvfile.h"
#include "llvfs.h"
+#include "llxfer.h"
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
# include <zlib.h>
#else
# include "zlib/zlib.h"
#endif
+const char* const LOCAL_ASSET_URL_FORMAT = "http://%s:12041/asset";
+
const U32 MAX_RUNNING_REQUESTS = 1;
-const F32 MAX_PROCESSING_TIME = 0.005f;
-const S32 CURL_XFER_BUFFER_SIZE = 65536;
+
// Try for 30 minutes for now.
const F32 GET_URL_TO_FILE_TIMEOUT = 1800.0f;
const S32 COMPRESSED_INPUT_BUFFER_SIZE = 4096;
-const S32 HTTP_OK = 200;
-const S32 HTTP_PUT_OK = 201;
-const S32 HTTP_NO_CONTENT = 204;
-const S32 HTTP_MISSING = 404;
-const S32 HTTP_SERVER_BAD_GATEWAY = 502;
-const S32 HTTP_SERVER_TEMP_UNAVAILABLE = 503;
-
/////////////////////////////////////////////////////////////////////////////////
// LLTempAssetData
// An asset not stored on central asset store, but on a simulator node somewhere.
@@ -180,8 +170,8 @@ LLSD LLHTTPAssetRequest::getFullDetails() const
double curl_total_time = -1.0f;
double curl_size_upload = -1.0f;
double curl_size_download = -1.0f;
- long curl_content_length_upload = -1;
- long curl_content_length_download = -1;
+ double curl_content_length_upload = -1.0f;
+ double curl_content_length_download = -1.0f;
long curl_request_size = -1;
const char* curl_content_type = NULL;
@@ -200,8 +190,8 @@ LLSD LLHTTPAssetRequest::getFullDetails() const
sd["curl_total_time"] = curl_total_time;
sd["curl_size_upload"] = curl_size_upload;
sd["curl_size_download"] = curl_size_download;
- sd["curl_content_length_upload"] = (int) curl_content_length_upload;
- sd["curl_content_length_download"] = (int) curl_content_length_download;
+ sd["curl_content_length_upload"] = curl_content_length_upload;
+ sd["curl_content_length_download"] = curl_content_length_download;
sd["curl_request_size"] = (int) curl_request_size;
if (curl_content_type)
{
@@ -237,7 +227,12 @@ LLSD LLHTTPAssetRequest::getFullDetails() const
void LLHTTPAssetRequest::setupCurlHandle()
{
// *NOTE: Similar code exists in mapserver/llcurlutil.cpp JC
- mCurlHandle = curl_easy_init();
+ mCurlHandle = LLCurl::newEasyHandle();
+ llassert_always(mCurlHandle != NULL) ;
+
+ // Apply proxy settings if configured to do so
+ LLProxy::getInstance()->applyProxySettings(mCurlHandle);
+
curl_easy_setopt(mCurlHandle, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(mCurlHandle, CURLOPT_NOPROGRESS, 1);
curl_easy_setopt(mCurlHandle, CURLOPT_URL, mURLBuffer.c_str());
@@ -273,13 +268,13 @@ void LLHTTPAssetRequest::setupCurlHandle()
}
else
{
- llerrs << "LLHTTPAssetRequest::setupCurlHandle - No asset storage associated with this request!" << llendl;
+ LL_ERRS() << "LLHTTPAssetRequest::setupCurlHandle - No asset storage associated with this request!" << LL_ENDL;
}
}
void LLHTTPAssetRequest::cleanupCurlHandle()
{
- curl_easy_cleanup(mCurlHandle);
+ LLCurl::deleteEasyHandle(mCurlHandle);
if (mAssetStoragep)
{
// Terminating a request. Thus upload or download is no longer pending.
@@ -287,7 +282,7 @@ void LLHTTPAssetRequest::cleanupCurlHandle()
}
else
{
- llerrs << "LLHTTPAssetRequest::~LLHTTPAssetRequest - No asset storage associated with this request!" << llendl;
+ LL_ERRS() << "LLHTTPAssetRequest::~LLHTTPAssetRequest - No asset storage associated with this request!" << LL_ENDL;
}
mCurlHandle = NULL;
}
@@ -309,7 +304,7 @@ void LLHTTPAssetRequest::prepareCompressedUpload()
if (r != Z_OK)
{
- llerrs << "LLHTTPAssetRequest::prepareCompressedUpload defalateInit2() failed" << llendl;
+ LL_ERRS() << "LLHTTPAssetRequest::prepareCompressedUpload defalateInit2() failed" << LL_ENDL;
}
mZInitialized = true;
@@ -324,10 +319,10 @@ void LLHTTPAssetRequest::finishCompressedUpload()
{
if (mZInitialized)
{
- llinfos << "LLHTTPAssetRequest::finishCompressedUpload: "
+ LL_INFOS() << "LLHTTPAssetRequest::finishCompressedUpload: "
<< "read " << mZStream.total_in << " byte asset file, "
<< "uploaded " << mZStream.total_out << " byte compressed asset"
- << llendl;
+ << LL_ENDL;
deflateEnd(&mZStream);
delete[] mZInputBuffer;
@@ -365,8 +360,8 @@ size_t LLHTTPAssetRequest::readCompressedData(void* data, size_t size)
{
if (r < 0)
{
- llwarns << "LLHTTPAssetRequest::readCompressedData: deflate returned error code "
- << (S32) r << llendl;
+ LL_WARNS() << "LLHTTPAssetRequest::readCompressedData: deflate returned error code "
+ << (S32) r << LL_ENDL;
}
break;
}
@@ -430,12 +425,13 @@ void LLHTTPAssetStorage::_init(const std::string& web_host, const std::string& l
// curl_global_init moved to LLCurl::initClass()
- mCurlMultiHandle = curl_multi_init();
+ mCurlMultiHandle = LLCurl::newMultiHandle() ;
+ llassert_always(mCurlMultiHandle != NULL) ;
}
LLHTTPAssetStorage::~LLHTTPAssetStorage()
{
- curl_multi_cleanup(mCurlMultiHandle);
+ LLCurl::deleteMultiHandle(mCurlMultiHandle);
mCurlMultiHandle = NULL;
// curl_global_cleanup moved to LLCurl::initClass()
@@ -452,7 +448,7 @@ void LLHTTPAssetStorage::storeAssetData(
bool store_local,
const LLUUID& requesting_agent_id,
bool user_waiting,
- F64 timeout)
+ F64Seconds timeout)
{
if (mVFS->getExists(uuid, type)) // VFS treats nonexistant and zero-length identically
{
@@ -492,7 +488,7 @@ void LLHTTPAssetStorage::storeAssetData(
}
else
{
- llwarns << "AssetStorage: attempt to upload non-existent vfile " << uuid << ":" << LLAssetType::lookup(type) << llendl;
+ LL_WARNS() << "AssetStorage: attempt to upload non-existent vfile " << uuid << ":" << LLAssetType::lookup(type) << LL_ENDL;
if (callback)
{
// LLAssetStorage metric: Zero size VFS
@@ -512,9 +508,9 @@ void LLHTTPAssetStorage::storeAssetData(
bool temp_file,
bool is_priority,
bool user_waiting,
- F64 timeout)
+ F64Seconds timeout)
{
- llinfos << "LLAssetStorage::storeAssetData (legacy)" << asset_id << ":" << LLAssetType::lookup(asset_type) << llendl;
+ LL_INFOS() << "LLAssetStorage::storeAssetData (legacy)" << asset_id << ":" << LLAssetType::lookup(asset_type) << LL_ENDL;
LLLegacyAssetRequest *legacy = new LLLegacyAssetRequest;
@@ -684,15 +680,15 @@ bool LLHTTPAssetStorage::deletePendingRequest(LLAssetStorage::ERequestType rt,
}
- llinfos << "Asset " << getRequestName(rt) << " request for "
+ LL_INFOS() << "Asset " << getRequestName(rt) << " request for "
<< asset_id << "." << LLAssetType::lookup(asset_type)
<< " removed from curl and placed at the end of the pending queue."
- << llendl;
+ << LL_ENDL;
}
else
{
- llwarns << "Unable to find pending " << getRequestName(rt) << " request for "
- << asset_id << "." << LLAssetType::lookup(asset_type) << llendl;
+ LL_WARNS() << "Unable to find pending " << getRequestName(rt) << " request for "
+ << asset_id << "." << LLAssetType::lookup(asset_type) << LL_ENDL;
}
}
delete req;
@@ -746,7 +742,7 @@ LLAssetRequest* LLHTTPAssetStorage::findNextRequest(LLAssetStorage::request_list
request_list_t::iterator running_end = running.end();
request_list_t::iterator pending_iter = pending.begin();
- request_list_t::iterator pending_end = pending.end();
+
// Loop over all pending requests until we miss finding it in the running list.
for (; pending_iter != pending.end(); ++pending_iter)
{
@@ -799,7 +795,7 @@ void LLHTTPAssetStorage::checkForTimeouts()
}
else
{
- llinfos << "Requesting " << new_req->mURLBuffer << llendl;
+ LL_INFOS() << "Requesting " << new_req->mURLBuffer << LL_ENDL;
}
}
@@ -863,10 +859,10 @@ void LLHTTPAssetStorage::checkForTimeouts()
// Get the uncompressed file size.
LLVFile file(mVFS,new_req->getUUID(),new_req->getType());
S32 size = file.getSize();
- llinfos << "Requesting PUT " << new_req->mURLBuffer << ", asset size: " << size << " bytes" << llendl;
+ LL_INFOS() << "Requesting PUT " << new_req->mURLBuffer << ", asset size: " << size << " bytes" << LL_ENDL;
if (size == 0)
{
- llwarns << "Rejecting zero size PUT request!" << llendl;
+ LL_WARNS() << "Rejecting zero size PUT request!" << LL_ENDL;
new_req->cleanupCurlHandle();
deletePendingRequest(RT_UPLOAD, new_req->getType(), new_req->getUUID());
}
@@ -912,12 +908,12 @@ void LLHTTPAssetStorage::checkForTimeouts()
// Get the uncompressed file size.
S32 size = file.getSize();
- llinfos << "TAT: LLHTTPAssetStorage::checkForTimeouts() : pending local!"
- << " Requesting PUT " << new_req->mURLBuffer << ", asset size: " << size << " bytes" << llendl;
+ LL_INFOS() << "TAT: LLHTTPAssetStorage::checkForTimeouts() : pending local!"
+ << " Requesting PUT " << new_req->mURLBuffer << ", asset size: " << size << " bytes" << LL_ENDL;
if (size == 0)
{
- llwarns << "Rejecting zero size PUT request!" << llendl;
+ LL_WARNS() << "Rejecting zero size PUT request!" << LL_ENDL;
new_req->cleanupCurlHandle();
deletePendingRequest(RT_UPLOAD, new_req->getType(), new_req->getUUID());
}
@@ -951,10 +947,10 @@ void LLHTTPAssetStorage::checkForTimeouts()
{
if (curl_msg->data.result == CURLE_OK &&
( curl_result == HTTP_OK
- || curl_result == HTTP_PUT_OK
+ || curl_result == HTTP_CREATED
|| curl_result == HTTP_NO_CONTENT))
{
- llinfos << "Success uploading " << req->getUUID() << " to " << req->mURLBuffer << llendl;
+ LL_INFOS() << "Success uploading " << req->getUUID() << " to " << req->mURLBuffer << LL_ENDL;
if (RT_LOCALUPLOAD == req->mRequestType)
{
addTempAssetData(req->getUUID(), req->mRequestingAgentID, mHostName);
@@ -962,11 +958,11 @@ void LLHTTPAssetStorage::checkForTimeouts()
}
else if (curl_msg->data.result == CURLE_COULDNT_CONNECT ||
curl_msg->data.result == CURLE_OPERATION_TIMEOUTED ||
- curl_result == HTTP_SERVER_BAD_GATEWAY ||
- curl_result == HTTP_SERVER_TEMP_UNAVAILABLE)
+ curl_result == HTTP_BAD_GATEWAY ||
+ curl_result == HTTP_SERVICE_UNAVAILABLE)
{
- llwarns << "Re-requesting upload for " << req->getUUID() << ". Received upload error to " << req->mURLBuffer <<
- " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << llendl;
+ LL_WARNS() << "Re-requesting upload for " << req->getUUID() << ". Received upload error to " << req->mURLBuffer <<
+ " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << LL_ENDL;
////HACK (probably) I am sick of this getting requeued and driving me mad.
//if (req->mIsUserWaiting)
@@ -976,16 +972,16 @@ void LLHTTPAssetStorage::checkForTimeouts()
}
else
{
- llwarns << "Failure uploading " << req->getUUID() << " to " << req->mURLBuffer <<
- " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << llendl;
+ LL_WARNS() << "Failure uploading " << req->getUUID() << " to " << req->mURLBuffer <<
+ " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << LL_ENDL;
xfer_result = LL_ERR_ASSET_REQUEST_FAILED;
}
if (!(curl_msg->data.result == CURLE_COULDNT_CONNECT ||
curl_msg->data.result == CURLE_OPERATION_TIMEOUTED ||
- curl_result == HTTP_SERVER_BAD_GATEWAY ||
- curl_result == HTTP_SERVER_TEMP_UNAVAILABLE))
+ curl_result == HTTP_BAD_GATEWAY ||
+ curl_result == HTTP_SERVICE_UNAVAILABLE))
{
// shared upload finished callback
// in the base class, this is called from processUploadComplete
@@ -999,7 +995,7 @@ void LLHTTPAssetStorage::checkForTimeouts()
{
if (req->mVFile && req->mVFile->getSize() > 0)
{
- llinfos << "Success downloading " << req->mURLBuffer << ", size " << req->mVFile->getSize() << llendl;
+ LL_INFOS() << "Success downloading " << req->mURLBuffer << ", size " << req->mVFile->getSize() << LL_ENDL;
req->mVFile->rename(req->getUUID(), req->getType());
}
@@ -1007,17 +1003,17 @@ void LLHTTPAssetStorage::checkForTimeouts()
{
// *TODO: if this actually indicates a bad asset on the server
// (not certain at this point), then delete it
- llwarns << "Found " << req->mURLBuffer << " to be zero size" << llendl;
+ LL_WARNS() << "Found " << req->mURLBuffer << " to be zero size" << LL_ENDL;
xfer_result = LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE;
}
}
else
{
// KLW - TAT See if an avatar owns this texture, and if so request re-upload.
- llwarns << "Failure downloading " << req->mURLBuffer <<
- " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << llendl;
+ LL_WARNS() << "Failure downloading " << req->mURLBuffer <<
+ " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << LL_ENDL;
- xfer_result = (curl_result == HTTP_MISSING) ? LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE : LL_ERR_ASSET_REQUEST_FAILED;
+ xfer_result = (curl_result == HTTP_NOT_FOUND) ? LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE : LL_ERR_ASSET_REQUEST_FAILED;
if (req->mVFile)
{
@@ -1060,7 +1056,7 @@ void LLHTTPAssetStorage::bumpTimedOutUploads()
{
bool user_waiting=FALSE;
- F64 mt_secs = LLMessageSystem::getMessageTimeSeconds();
+ F64Seconds mt_secs = LLMessageSystem::getMessageTimeSeconds();
if (mPendingUploads.size())
{
@@ -1087,10 +1083,10 @@ void LLHTTPAssetStorage::bumpTimedOutUploads()
if ( req->mTimeout < (mt_secs - req->mTime) )
{
- llwarns << "Asset upload request timed out for "
+ LL_WARNS() << "Asset upload request timed out for "
<< req->getUUID() << "."
<< LLAssetType::lookup(req->getType())
- << ", bumping to the back of the line!" << llendl;
+ << ", bumping to the back of the line!" << LL_ENDL;
deletePendingRequest(RT_UPLOAD, req->getType(), req->getUUID());
}
@@ -1102,7 +1098,7 @@ size_t LLHTTPAssetStorage::curlDownCallback(void *data, size_t size, size_t nmem
{
if (!gAssetStorage)
{
- llwarns << "Missing gAssetStorage, aborting curl download callback!" << llendl;
+ LL_WARNS() << "Missing gAssetStorage, aborting curl download callback!" << LL_ENDL;
return 0;
}
S32 bytes = (S32)(size * nmemb);
@@ -1132,7 +1128,7 @@ size_t LLHTTPAssetStorage::curlUpCallback(void *data, size_t size, size_t nmemb,
{
if (!gAssetStorage)
{
- llwarns << "Missing gAssetStorage, aborting curl download callback!" << llendl;
+ LL_WARNS() << "Missing gAssetStorage, aborting curl download callback!" << LL_ENDL;
return 0;
}
CURL *curl_handle = (CURL *)user_data;
@@ -1167,12 +1163,12 @@ S32 LLHTTPAssetStorage::getURLToFile(const LLUUID& uuid, LLAssetType::EType asse
{
// *NOTE: There is no guarantee that the uuid and the asset_type match
// - not that it matters. - Doug
- lldebugs << "LLHTTPAssetStorage::getURLToFile() - " << url << llendl;
+ LL_DEBUGS() << "LLHTTPAssetStorage::getURLToFile() - " << url << LL_ENDL;
FILE *fp = LLFile::fopen(filename, "wb"); /*Flawfinder: ignore*/
if (! fp)
{
- llwarns << "Failed to open " << filename << " for writing" << llendl;
+ LL_WARNS() << "Failed to open " << filename << " for writing" << LL_ENDL;
return LL_ERR_ASSET_REQUEST_FAILED;
}
@@ -1186,7 +1182,7 @@ S32 LLHTTPAssetStorage::getURLToFile(const LLUUID& uuid, LLAssetType::EType asse
curl_easy_setopt(req.mCurlHandle, CURLOPT_WRITEDATA, req.mCurlHandle);
curl_multi_add_handle(mCurlMultiHandle, req.mCurlHandle);
- llinfos << "Requesting as file " << req.mURLBuffer << llendl;
+ LL_INFOS() << "Requesting as file " << req.mURLBuffer << LL_ENDL;
// braindead curl loop
int queue_length;
@@ -1211,7 +1207,7 @@ S32 LLHTTPAssetStorage::getURLToFile(const LLUUID& uuid, LLAssetType::EType asse
}
else if (timeout.hasExpired())
{
- llwarns << "Request for " << url << " has timed out." << llendl;
+ LL_WARNS() << "Request for " << url << " has timed out." << LL_ENDL;
success = false;
xfer_result = LL_ERR_ASSET_REQUEST_FAILED;
break;
@@ -1229,19 +1225,19 @@ S32 LLHTTPAssetStorage::getURLToFile(const LLUUID& uuid, LLAssetType::EType asse
if (size > 0)
{
// everything seems to be in order
- llinfos << "Success downloading " << req.mURLBuffer << " to file, size " << size << llendl;
+ LL_INFOS() << "Success downloading " << req.mURLBuffer << " to file, size " << size << LL_ENDL;
}
else
{
- llwarns << "Found " << req.mURLBuffer << " to be zero size" << llendl;
+ LL_WARNS() << "Found " << req.mURLBuffer << " to be zero size" << LL_ENDL;
xfer_result = LL_ERR_ASSET_REQUEST_FAILED;
}
}
else
{
- xfer_result = curl_result == HTTP_MISSING ? LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE : LL_ERR_ASSET_REQUEST_FAILED;
- llinfos << "Failure downloading " << req.mURLBuffer <<
- " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << llendl;
+ xfer_result = curl_result == HTTP_NOT_FOUND ? LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE : LL_ERR_ASSET_REQUEST_FAILED;
+ LL_INFOS() << "Failure downloading " << req.mURLBuffer <<
+ " with result " << curl_easy_strerror(curl_msg->data.result) << ", http result " << curl_result << LL_ENDL;
}
}
@@ -1263,7 +1259,7 @@ size_t LLHTTPAssetStorage::curlFileDownCallback(void *data, size_t size, size_t
if (! req->mFP)
{
- llwarns << "Missing mFP, aborting curl file download callback!" << llendl;
+ LL_WARNS() << "Missing mFP, aborting curl file download callback!" << LL_ENDL;
return 0;
}
@@ -1310,7 +1306,7 @@ void LLHTTPAssetStorage::addRunningRequest(ERequestType rt, LLHTTPAssetRequest*
}
else
{
- llerrs << "LLHTTPAssetStorage::addRunningRequest - Request is not an upload OR download, this is bad!" << llendl;
+ LL_ERRS() << "LLHTTPAssetStorage::addRunningRequest - Request is not an upload OR download, this is bad!" << LL_ENDL;
}
}
@@ -1323,7 +1319,7 @@ void LLHTTPAssetStorage::removeRunningRequest(ERequestType rt, LLHTTPAssetReques
}
else
{
- llerrs << "LLHTTPAssetStorage::removeRunningRequest - Destroyed request is not an upload OR download, this is bad!" << llendl;
+ LL_ERRS() << "LLHTTPAssetStorage::removeRunningRequest - Destroyed request is not an upload OR download, this is bad!" << LL_ENDL;
}
}
@@ -1332,7 +1328,7 @@ void LLHTTPAssetStorage::addTempAssetData(const LLUUID& asset_id, const LLUUID&
{
if (agent_id.isNull() || asset_id.isNull())
{
- llwarns << "TAT: addTempAssetData bad id's asset_id: " << asset_id << " agent_id: " << agent_id << llendl;
+ LL_WARNS() << "TAT: addTempAssetData bad id's asset_id: " << asset_id << " agent_id: " << agent_id << LL_ENDL;
return;
}
@@ -1433,26 +1429,26 @@ void LLHTTPAssetStorage::dumpTempAssetData(const LLUUID& avatar_id) const
if (avatar_id.isNull()
|| avatar_id == temp_asset_data.mAgentID)
{
- llinfos << "TAT: dump agent " << temp_asset_data.mAgentID
+ LL_INFOS() << "TAT: dump agent " << temp_asset_data.mAgentID
<< " texture " << temp_asset_data.mAssetID
<< " host " << temp_asset_data.mHostName
- << llendl;
+ << LL_ENDL;
count++;
}
}
if (avatar_id.isNull())
{
- llinfos << "TAT: dumped " << count << " entries for all avatars" << llendl;
+ LL_INFOS() << "TAT: dumped " << count << " entries for all avatars" << LL_ENDL;
}
else
{
- llinfos << "TAT: dumped " << count << " entries for avatar " << avatar_id << llendl;
+ LL_INFOS() << "TAT: dumped " << count << " entries for avatar " << avatar_id << LL_ENDL;
}
}
void LLHTTPAssetStorage::clearTempAssetData()
{
- llinfos << "TAT: Clearing temp asset data map" << llendl;
+ LL_INFOS() << "TAT: Clearing temp asset data map" << LL_ENDL;
mTempAssets.clear();
}