summaryrefslogtreecommitdiff
path: root/indra/llmessage
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage')
-rw-r--r--indra/llmessage/llassetstorage.cpp58
-rw-r--r--indra/llmessage/llassetstorage.h33
-rw-r--r--indra/llmessage/llcircuit.cpp2
-rw-r--r--indra/llmessage/llhttpassetstorage.cpp14
-rw-r--r--indra/llmessage/llhttpassetstorage.h2
-rw-r--r--indra/llmessage/llmessageconfig.cpp2
-rwxr-xr-xindra/llmessage/llsdmessagebuilder.cpp2
-rw-r--r--indra/llmessage/llteleportflags.h1
-rw-r--r--indra/llmessage/lltemplatemessagereader.cpp11
-rw-r--r--indra/llmessage/lltemplatemessagereader.h2
-rw-r--r--indra/llmessage/lltransfersourceasset.cpp2
-rw-r--r--indra/llmessage/lltransfersourceasset.h2
-rw-r--r--indra/llmessage/lltransfertargetvfile.cpp3
-rw-r--r--indra/llmessage/lltransfertargetvfile.h2
-rw-r--r--indra/llmessage/llxfer.cpp3
-rw-r--r--indra/llmessage/llxfer.h3
-rw-r--r--indra/llmessage/llxfer_file.cpp2
-rw-r--r--indra/llmessage/llxfer_file.h3
-rw-r--r--indra/llmessage/llxfer_mem.cpp5
-rw-r--r--indra/llmessage/llxfer_mem.h5
-rw-r--r--indra/llmessage/llxfer_vfile.cpp2
-rw-r--r--indra/llmessage/llxfer_vfile.h3
-rw-r--r--indra/llmessage/llxfermanager.cpp7
-rw-r--r--indra/llmessage/llxfermanager.h7
-rw-r--r--indra/llmessage/message.cpp2
-rw-r--r--indra/llmessage/message_prehash.cpp6
-rw-r--r--indra/llmessage/message_prehash.h3
27 files changed, 104 insertions, 83 deletions
diff --git a/indra/llmessage/llassetstorage.cpp b/indra/llmessage/llassetstorage.cpp
index 911e073fb6..b5a9e8a727 100644
--- a/indra/llmessage/llassetstorage.cpp
+++ b/indra/llmessage/llassetstorage.cpp
@@ -345,11 +345,11 @@ void LLAssetStorage::_cleanupRequests(BOOL all, S32 error)
LLAssetRequest* tmp = *curiter;
if (tmp->mUpCallback)
{
- tmp->mUpCallback(tmp->getUUID(), tmp->mUserData, error);
+ tmp->mUpCallback(tmp->getUUID(), tmp->mUserData, error, LL_EXSTAT_NONE);
}
if (tmp->mDownCallback)
{
- tmp->mDownCallback(mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, error);
+ tmp->mDownCallback(mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, error, LL_EXSTAT_NONE);
}
if (tmp->mInfoCallback)
{
@@ -370,7 +370,7 @@ BOOL LLAssetStorage::hasLocalAsset(const LLUUID &uuid, const LLAssetType::EType
///////////////////////////////////////////////////////////////////////////
// IW - uuid is passed by value to avoid side effects, please don't re-add &
-void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *,S32), void *user_data, BOOL is_priority)
+void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat), void *user_data, BOOL is_priority)
{
lldebugs << "LLAssetStorage::getAssetData() - " << uuid << "," << LLAssetType::lookup(type) << llendl;
@@ -384,7 +384,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, vo
// Special case early out for NULL uuid
if (callback)
{
- callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE);
+ callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);
}
return;
}
@@ -439,7 +439,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, vo
// unless there's a weird error
if (callback)
{
- callback(mVFS, uuid, type, user_data, LL_ERR_NOERR);
+ callback(mVFS, uuid, type, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
}
}
}
@@ -482,7 +482,7 @@ void LLAssetStorage::_queueDataRequest(const LLUUID& uuid, LLAssetType::EType at
llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;
if (callback)
{
- callback(mVFS, uuid, atype, user_data, LL_ERR_CIRCUIT_GONE);
+ callback(mVFS, uuid, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
}
}
}
@@ -492,7 +492,7 @@ void LLAssetStorage::downloadCompleteCallback(
S32 result,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data)
+ void* user_data, LLExtStat ext_status)
{
lldebugs << "LLAssetStorage::downloadCompleteCallback() for " << file_id
<< "," << LLAssetType::lookup(file_type) << llendl;
@@ -546,7 +546,7 @@ void LLAssetStorage::downloadCompleteCallback(
LLAssetRequest* tmp = *curiter;
if (tmp->mDownCallback)
{
- tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result);
+ tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result, ext_status);
}
delete tmp;
}
@@ -566,7 +566,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen
// Special case early out for NULL uuid
if (callback)
{
- callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE);
+ callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);
}
return;
}
@@ -622,7 +622,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen
llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;
if (callback)
{
- callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE);
+ callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
}
}
}
@@ -633,7 +633,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen
// unless there's a weird error
if (callback)
{
- callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR);
+ callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
}
}
}
@@ -642,7 +642,8 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
S32 result,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data)
+ void* user_data,
+ LLExtStat ext_status)
{
LLEstateAssetRequest *req = (LLEstateAssetRequest*)user_data;
if(!req)
@@ -673,7 +674,7 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
}
}
- req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getAType(), req->mUserData, result);
+ req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getAType(), req->mUserData, result, ext_status);
}
void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &agent_id, const LLUUID &session_id,
@@ -757,7 +758,7 @@ void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &age
llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;
if (callback)
{
- callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE);
+ callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
}
}
}
@@ -768,7 +769,7 @@ void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &age
// unless there's a weird error
if (callback)
{
- callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR);
+ callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
}
}
}
@@ -778,7 +779,8 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
S32 result,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data)
+ void* user_data,
+ LLExtStat ext_status)
{
LLInvItemRequest *req = (LLInvItemRequest*)user_data;
if(!req)
@@ -808,7 +810,7 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
}
}
- req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), req->mUserData, result);
+ req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), req->mUserData, result, ext_status);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -816,7 +818,7 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// static
-void LLAssetStorage::uploadCompleteCallback(const LLUUID& uuid, void *user_data, S32 result) // StoreAssetData callback (fixed)
+void LLAssetStorage::uploadCompleteCallback(const LLUUID& uuid, void *user_data, S32 result, LLExtStat ext_status) // StoreAssetData callback (fixed)
{
if (!gAssetStorage)
{
@@ -856,10 +858,10 @@ void LLAssetStorage::processUploadComplete(LLMessageSystem *msg, void **user_dat
msg->getBOOLFast(_PREHASH_AssetBlock, _PREHASH_Success, success);
asset_type = (LLAssetType::EType)asset_type_s8;
- this_ptr->_callUploadCallbacks(uuid, asset_type, success);
+ this_ptr->_callUploadCallbacks(uuid, asset_type, success, LL_EXSTAT_NONE);
}
-void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType asset_type, BOOL success)
+void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status )
{
// SJB: We process the callbacks in reverse order, I do not know if this is important,
// but I didn't want to mess with it.
@@ -893,7 +895,7 @@ void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType
LLAssetRequest* req = *curiter;
if (req->mUpCallback)
{
- req->mUpCallback(uuid, req->mUserData, (success ? LL_ERR_NOERR : LL_ERR_ASSET_REQUEST_FAILED ));
+ req->mUpCallback(uuid, req->mUserData, (success ? LL_ERR_NOERR : LL_ERR_ASSET_REQUEST_FAILED ), ext_status );
}
delete req;
}
@@ -1116,11 +1118,11 @@ bool LLAssetStorage::deletePendingRequest(LLAssetStorage::request_list_t* reques
// Run callbacks.
if (req->mUpCallback)
{
- req->mUpCallback(req->getUUID(), req->mUserData, error);
+ req->mUpCallback(req->getUUID(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);
}
if (req->mDownCallback)
{
- req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error);
+ req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);
}
if (req->mInfoCallback)
{
@@ -1173,7 +1175,7 @@ const char* LLAssetStorage::getErrorString(S32 status)
-void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32), void *user_data, BOOL is_priority)
+void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32, LLExtStat), void *user_data, BOOL is_priority)
{
// check for duplicates here, since we're about to fool the normal duplicate checker
for (request_list_t::iterator iter = mPendingDownloads.begin();
@@ -1203,7 +1205,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, vo
}
// static
-void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 status)
+void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 status, LLExtStat ext_status)
{
LLLegacyAssetRequest *legacy = (LLLegacyAssetRequest *)user_data;
char filename[LL_MAX_PATH] = ""; /* Flawfinder: ignore */
@@ -1239,7 +1241,7 @@ void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAss
}
}
- legacy->mDownCallback(filename, uuid, legacy->mUserData, status);
+ legacy->mDownCallback(filename, uuid, legacy->mUserData, status, ext_status);
delete legacy;
}
@@ -1309,12 +1311,12 @@ void LLAssetStorage::storeAssetData(
}
// static
-void LLAssetStorage::legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status)
+void LLAssetStorage::legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status, LLExtStat ext_status)
{
LLLegacyAssetRequest *legacy = (LLLegacyAssetRequest *)user_data;
if (legacy && legacy->mUpCallback)
{
- legacy->mUpCallback(uuid, legacy->mUserData, status);
+ legacy->mUpCallback(uuid, legacy->mUserData, status, ext_status);
}
delete legacy;
}
diff --git a/indra/llmessage/llassetstorage.h b/indra/llmessage/llassetstorage.h
index df448b010e..fed05d8868 100644
--- a/indra/llmessage/llassetstorage.h
+++ b/indra/llmessage/llassetstorage.h
@@ -20,6 +20,7 @@
#include "lltransfermanager.h" // For LLTSCode enum
#include "llassettype.h"
#include "llstring.h"
+#include "llextendedstatus.h"
// Forward declarations
class LLMessageSystem;
@@ -82,8 +83,8 @@ protected:
LLAssetType::EType mType;
public:
- void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32);
- void (*mUpCallback)(const LLUUID&, void *, S32);
+ void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
+ void (*mUpCallback)(const LLUUID&, void *, S32, LLExtStat);
void (*mInfoCallback)(LLAssetInfo *, void *, S32);
void *mUserData;
@@ -130,7 +131,7 @@ protected:
LLAssetType::EType mType;
public:
- void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32);
+ void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
void *mUserData;
LLHost mHost;
@@ -160,7 +161,7 @@ protected:
EstateAssetType mEstateAssetType;
public:
- void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32);
+ void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
void *mUserData;
LLHost mHost;
@@ -176,14 +177,14 @@ public:
typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id,
- LLAssetType::EType asset_type, void *user_data, S32 status);
+ LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status);
class LLAssetStorage
{
public:
// VFS member is public because static child methods need it :(
LLVFS *mVFS;
- typedef void (*LLStoreAssetCallback)(const LLUUID &asset_id, void *user_data, S32 status);
+ typedef void (*LLStoreAssetCallback)(const LLUUID &asset_id, void *user_data, S32 status, LLExtStat ext_status);
enum ERequestType
{
@@ -315,27 +316,27 @@ public:
S32 result,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data);
+ void* user_data, LLExtStat ext_status);
static void downloadEstateAssetCompleteCallback(
S32 result,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data);
+ void* user_data, LLExtStat ext_status);
static void downloadInvItemCompleteCallback(
S32 result,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data);
+ void* user_data, LLExtStat ext_status);
// upload process callbacks
- static void uploadCompleteCallback(const LLUUID&, void *user_data, S32 result);
+ static void uploadCompleteCallback(const LLUUID&, void *user_data, S32 result, LLExtStat ext_status);
static void processUploadComplete(LLMessageSystem *msg, void **this_handle);
// debugging
static const char* getErrorString( S32 status );
// deprecated file-based methods
- void getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32), void *user_data, BOOL is_priority = FALSE);
+ void getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32, LLExtStat), void *user_data, BOOL is_priority = FALSE);
/*
* AssetID version.
@@ -365,8 +366,8 @@ public:
bool user_waiting = false,
F64 timeout = LL_ASSET_STORAGE_TIMEOUT);
- static void legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType, void *user_data, S32 status);
- static void legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status);
+ static void legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType, void *user_data, S32 status, LLExtStat ext_status);
+ static void legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status, LLExtStat ext_status);
// Temp assets are stored on sim nodes, they have agent ID and location data associated with them.
// This is a no-op for non-http asset systems
@@ -384,10 +385,10 @@ public:
protected:
void _cleanupRequests(BOOL all, S32 error);
- void _callUploadCallbacks(const LLUUID &uuid, const LLAssetType::EType asset_type, BOOL success);
+ void _callUploadCallbacks(const LLUUID &uuid, const LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status);
virtual void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
- void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32),
+ void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
void *user_data, BOOL duplicate,
BOOL is_priority);
@@ -405,7 +406,7 @@ private:
class LLLegacyAssetRequest
{
public:
- void (*mDownCallback)(const char *, const LLUUID&, void *, S32);
+ void (*mDownCallback)(const char *, const LLUUID&, void *, S32, LLExtStat);
LLAssetStorage::LLStoreAssetCallback mUpCallback;
void *mUserData;
diff --git a/indra/llmessage/llcircuit.cpp b/indra/llmessage/llcircuit.cpp
index e9a60e4eb8..6dff2683b4 100644
--- a/indra/llmessage/llcircuit.cpp
+++ b/indra/llmessage/llcircuit.cpp
@@ -1138,7 +1138,7 @@ std::ostream& operator<<(std::ostream& s, LLCircuitData& circuit)
s << S32(circuit.mBytesInLastPeriod * 8.f / circuit.mLastPeriodLength / 1024.f);
s << "/";
s << S32(circuit.mBytesOutLastPeriod * 8.f / circuit.mLastPeriodLength / 1024.f);
- s << " Peak Kbps: ";
+ s << " Peak kbps: ";
s << S32(circuit.mPeakBPSIn / 1024.f);
s << "/";
s << S32(circuit.mPeakBPSOut / 1024.f);
diff --git a/indra/llmessage/llhttpassetstorage.cpp b/indra/llmessage/llhttpassetstorage.cpp
index 534f1d8ca6..23b90aef71 100644
--- a/indra/llmessage/llhttpassetstorage.cpp
+++ b/indra/llmessage/llhttpassetstorage.cpp
@@ -444,7 +444,7 @@ void LLHTTPAssetStorage::storeAssetData(
llwarns << "AssetStorage: attempt to upload non-existent vfile " << uuid << ":" << LLAssetType::lookup(type) << llendl;
if (callback)
{
- callback(uuid, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE );
+ callback(uuid, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE, LL_EXSTAT_NONEXISTENT_FILE);
}
}
}
@@ -509,7 +509,7 @@ void LLHTTPAssetStorage::storeAssetData(
{
if (callback)
{
- callback(LLUUID::null, user_data, LL_ERR_CANNOT_OPEN_FILE);
+ callback(LLUUID::null, user_data, LL_ERR_CANNOT_OPEN_FILE, LL_EXSTAT_BLOCKED_FILE);
}
}
// Coverity CID-269 says there's a leak of 'legacy' here, but
@@ -611,7 +611,7 @@ bool LLHTTPAssetStorage::deletePendingRequest(LLAssetStorage::ERequestType rt,
{
if (pending_req->mUpCallback) //Clean up here rather than _callUploadCallbacks because this request is already cleared the req.
{
- pending_req->mUpCallback(pending_req->getUUID(), pending_req->mUserData, -1);
+ pending_req->mUpCallback(pending_req->getUUID(), pending_req->mUserData, -1, LL_EXSTAT_REQUEST_DROPPED);
}
}
@@ -637,7 +637,7 @@ bool LLHTTPAssetStorage::deletePendingRequest(LLAssetStorage::ERequestType rt,
// internal requester, used by getAssetData in superclass
void LLHTTPAssetStorage::_queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
- void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32),
+ void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
void *user_data, BOOL duplicate,
BOOL is_priority)
{
@@ -902,7 +902,7 @@ void LLHTTPAssetStorage::checkForTimeouts()
{
// shared upload finished callback
// in the base class, this is called from processUploadComplete
- _callUploadCallbacks(req->getUUID(), req->getType(), (xfer_result == 0));
+ _callUploadCallbacks(req->getUUID(), req->getType(), (xfer_result == 0), LL_EXSTAT_CURL_RESULT | curl_result);
// Pending upload flag will get cleared when the request is deleted
}
}
@@ -944,7 +944,8 @@ void LLHTTPAssetStorage::checkForTimeouts()
xfer_result,
req->getUUID(),
req->getType(),
- (void *)req);
+ (void *)req,
+ LL_EXSTAT_CURL_RESULT | curl_result);
// Pending download flag will get cleared when the request is deleted
}
else
@@ -1369,3 +1370,4 @@ void LLHTTPAssetStorage::clearTempAssetData()
mTempAssets.clear();
}
+
diff --git a/indra/llmessage/llhttpassetstorage.h b/indra/llmessage/llhttpassetstorage.h
index d6f74d7744..548dc1305e 100644
--- a/indra/llmessage/llhttpassetstorage.h
+++ b/indra/llmessage/llhttpassetstorage.h
@@ -108,7 +108,7 @@ public:
protected:
void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
- void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32),
+ void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
void *user_data, BOOL duplicate, BOOL is_priority);
private:
diff --git a/indra/llmessage/llmessageconfig.cpp b/indra/llmessage/llmessageconfig.cpp
index 25bdc9fb16..bfaec7c8fc 100644
--- a/indra/llmessage/llmessageconfig.cpp
+++ b/indra/llmessage/llmessageconfig.cpp
@@ -143,7 +143,7 @@ void LLMessageConfigFile::loadMessageBans(const LLSD& data)
bool LLMessageConfigFile::isCapBanned(const std::string& cap_name) const
{
- llinfos << "mCapBans is " << LLSDXMLStreamer(mCapBans) << llendl;
+ lldebugs << "mCapBans is " << LLSDNotationStreamer(mCapBans) << llendl;
return mCapBans[cap_name];
}
diff --git a/indra/llmessage/llsdmessagebuilder.cpp b/indra/llmessage/llsdmessagebuilder.cpp
index 94d2378050..64eeefc256 100755
--- a/indra/llmessage/llsdmessagebuilder.cpp
+++ b/indra/llmessage/llsdmessagebuilder.cpp
@@ -256,7 +256,7 @@ void LLSDMessageBuilder::copyFromMessageData(const LLMsgData& data)
void LLSDMessageBuilder::copyFromLLSD(const LLSD& msg)
{
mCurrentMessage = msg;
- lldebugs << LLSDXMLStreamer(mCurrentMessage) << llendl;
+ lldebugs << LLSDNotationStreamer(mCurrentMessage) << llendl;
}
const LLSD& LLSDMessageBuilder::getMessage() const
diff --git a/indra/llmessage/llteleportflags.h b/indra/llmessage/llteleportflags.h
index fd54814ce5..49795f2e1b 100644
--- a/indra/llmessage/llteleportflags.h
+++ b/indra/llmessage/llteleportflags.h
@@ -25,6 +25,7 @@ const U32 TELEPORT_FLAGS_DISABLE_CANCEL = 1 << 11; // Used for llTeleportAgentH
const U32 TELEPORT_FLAGS_VIA_REGION_ID = 1 << 12;
const U32 TELEPORT_FLAGS_IS_FLYING = 1 << 13;
const U32 TELEPORT_FLAGS_SHOW_RESET_HOME = 1 << 14;
+const U32 TELEPORT_FLAGS_FORCE_REDIRECT = 1 << 15; // used to force a redirect to some random location - used when kicking someone from land.
const U32 TELEPORT_FLAGS_MASK_VIA = TELEPORT_FLAGS_VIA_LURE
| TELEPORT_FLAGS_VIA_LANDMARK
diff --git a/indra/llmessage/lltemplatemessagereader.cpp b/indra/llmessage/lltemplatemessagereader.cpp
index 3e08b9de26..03ef738e43 100644
--- a/indra/llmessage/lltemplatemessagereader.cpp
+++ b/indra/llmessage/lltemplatemessagereader.cpp
@@ -482,12 +482,15 @@ BOOL LLTemplateMessageReader::decodeTemplate(
return(TRUE);
}
-void LLTemplateMessageReader::logRanOffEndOfPacket( const LLHost& host )
+void LLTemplateMessageReader::logRanOffEndOfPacket( const LLHost& host, const S32 where, const S32 wanted )
{
// we've run off the end of the packet!
llwarns << "Ran off end of packet " << mCurrentRMessageTemplate->mName
// << " with id " << mCurrentRecvPacketID
<< " from " << host
+ << " trying to read " << wanted
+ << " bytes at position " << where
+ << " going past packet end at " << mReceiveSize
<< llendl;
if(gMessageSystem->mVerboseLog)
{
@@ -542,7 +545,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
// repeat number is a single byte
if (decode_pos >= mReceiveSize)
{
- logRanOffEndOfPacket(sender);
+ logRanOffEndOfPacket(sender, decode_pos, 1);
// default to 0 repeats
repeat_number = 0;
@@ -601,7 +604,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
if ((decode_pos + data_size) > mReceiveSize)
{
- logRanOffEndOfPacket(sender);
+ logRanOffEndOfPacket(sender, decode_pos, data_size);
// default to 0 length variable blocks
tsize = 0;
@@ -637,7 +640,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
// so, copy data pointer and set data size to fixed size
if ((decode_pos + mvci.getSize()) > mReceiveSize)
{
- logRanOffEndOfPacket(sender);
+ logRanOffEndOfPacket(sender, decode_pos, mvci.getSize());
// default to 0s.
U32 size = mvci.getSize();
diff --git a/indra/llmessage/lltemplatemessagereader.h b/indra/llmessage/lltemplatemessagereader.h
index ea8bd52298..87c91d92e2 100644
--- a/indra/llmessage/lltemplatemessagereader.h
+++ b/indra/llmessage/lltemplatemessagereader.h
@@ -93,7 +93,7 @@ private:
BOOL decodeTemplate(const U8* buffer, S32 buffer_size, // inputs
LLMessageTemplate** msg_template ); // outputs
- void logRanOffEndOfPacket( const LLHost& host );
+ void logRanOffEndOfPacket( const LLHost& host, const S32 where, const S32 wanted );
BOOL decodeData(const U8* buffer, const LLHost& sender );
diff --git a/indra/llmessage/lltransfersourceasset.cpp b/indra/llmessage/lltransfersourceasset.cpp
index 635b7cffaf..9490d9757c 100644
--- a/indra/llmessage/lltransfersourceasset.cpp
+++ b/indra/llmessage/lltransfersourceasset.cpp
@@ -154,7 +154,7 @@ BOOL LLTransferSourceAsset::unpackParams(LLDataPacker &dp)
void LLTransferSourceAsset::responderCallback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type,
- void *user_data, S32 result)
+ void *user_data, S32 result, LLExtStat ext_status )
{
LLUUID *tidp = ((LLUUID*) user_data);
LLUUID transfer_id = *(tidp);
diff --git a/indra/llmessage/lltransfersourceasset.h b/indra/llmessage/lltransfersourceasset.h
index 446c9622b2..6c9aabe91b 100644
--- a/indra/llmessage/lltransfersourceasset.h
+++ b/indra/llmessage/lltransfersourceasset.h
@@ -39,7 +39,7 @@ public:
virtual ~LLTransferSourceAsset();
static void responderCallback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type,
- void *user_data, S32 result);
+ void *user_data, S32 result, LLExtStat ext_status );
protected:
/*virtual*/ void initTransfer();
/*virtual*/ F32 updatePriority();
diff --git a/indra/llmessage/lltransfertargetvfile.cpp b/indra/llmessage/lltransfertargetvfile.cpp
index 6714185d3f..9c280fc208 100644
--- a/indra/llmessage/lltransfertargetvfile.cpp
+++ b/indra/llmessage/lltransfertargetvfile.cpp
@@ -195,6 +195,7 @@ void LLTransferTargetVFile::completionCallback(const LLTSCode status)
mParams.mCompleteCallback(err_code,
mParams.getAssetID(),
mParams.getAssetType(),
- mParams.mUserDatap);
+ mParams.mUserDatap,
+ LL_EXSTAT_NONE);
}
}
diff --git a/indra/llmessage/lltransfertargetvfile.h b/indra/llmessage/lltransfertargetvfile.h
index e9d5fa0c00..edce3bc677 100644
--- a/indra/llmessage/lltransfertargetvfile.h
+++ b/indra/llmessage/lltransfertargetvfile.h
@@ -21,7 +21,7 @@ typedef void (*LLTTVFCompleteCallback)(
S32 status,
const LLUUID& file_id,
LLAssetType::EType file_type,
- void* user_data);
+ void* user_data, LLExtStat ext_status );
class LLTransferTargetParamsVFile : public LLTransferTargetParams
{
diff --git a/indra/llmessage/llxfer.cpp b/indra/llmessage/llxfer.cpp
index 1a1492c20a..441f15365a 100644
--- a/indra/llmessage/llxfer.cpp
+++ b/indra/llmessage/llxfer.cpp
@@ -281,7 +281,7 @@ S32 LLXfer::processEOF()
if (mCallback)
{
- mCallback(mCallbackDataHandle,mCallbackResult);
+ mCallback(mCallbackDataHandle,mCallbackResult,LL_EXSTAT_NONE);
}
return(retval);
@@ -355,3 +355,4 @@ std::ostream& operator<< (std::ostream& os, LLXfer &hh)
+
diff --git a/indra/llmessage/llxfer.h b/indra/llmessage/llxfer.h
index 3fd12df7a5..ebe4d76d31 100644
--- a/indra/llmessage/llxfer.h
+++ b/indra/llmessage/llxfer.h
@@ -47,7 +47,7 @@ class LLXfer
BOOL mWaitingForACK;
- void (*mCallback)(void **,S32);
+ void (*mCallback)(void **,S32,LLExtStat);
void **mCallbackDataHandle;
S32 mCallbackResult;
@@ -96,3 +96,4 @@ class LLXfer
+
diff --git a/indra/llmessage/llxfer_file.cpp b/indra/llmessage/llxfer_file.cpp
index 338dbdd215..cc5b9f1add 100644
--- a/indra/llmessage/llxfer_file.cpp
+++ b/indra/llmessage/llxfer_file.cpp
@@ -103,7 +103,7 @@ S32 LLXfer_File::initializeRequest(U64 xfer_id,
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void**,S32),
+ void (*callback)(void**,S32,LLExtStat),
void** user_data)
{
S32 retval = 0; // presume success
diff --git a/indra/llmessage/llxfer_file.h b/indra/llmessage/llxfer_file.h
index b3d1ccbfbe..38c94f6591 100644
--- a/indra/llmessage/llxfer_file.h
+++ b/indra/llmessage/llxfer_file.h
@@ -40,7 +40,7 @@ class LLXfer_File : public LLXfer
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void**,S32),
+ void (*callback)(void**,S32,LLExtStat),
void** user_data);
virtual S32 startDownload();
@@ -66,3 +66,4 @@ class LLXfer_File : public LLXfer
+
diff --git a/indra/llmessage/llxfer_mem.cpp b/indra/llmessage/llxfer_mem.cpp
index ff878dc9f2..1eda712d2b 100644
--- a/indra/llmessage/llxfer_mem.cpp
+++ b/indra/llmessage/llxfer_mem.cpp
@@ -116,7 +116,7 @@ S32 LLXfer_Mem::processEOF()
if (mCallback)
{
- mCallback((void *)mBuffer,mBufferLength,mCallbackDataHandle,mCallbackResult);
+ mCallback((void *)mBuffer,mBufferLength,mCallbackDataHandle,mCallbackResult,LL_EXSTAT_NONE);
}
return(retval);
@@ -129,7 +129,7 @@ S32 LLXfer_Mem::initializeRequest(U64 xfer_id,
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void*,S32,void**,S32),
+ void (*callback)(void*,S32,void**,S32,LLExtStat),
void** user_data)
{
S32 retval = 0; // presume success
@@ -198,3 +198,4 @@ U32 LLXfer_Mem::getXferTypeTag()
+
diff --git a/indra/llmessage/llxfer_mem.h b/indra/llmessage/llxfer_mem.h
index d7cbdc4f85..6577132c9b 100644
--- a/indra/llmessage/llxfer_mem.h
+++ b/indra/llmessage/llxfer_mem.h
@@ -20,7 +20,7 @@ class LLXfer_Mem : public LLXfer
{
private:
protected:
- void (*mCallback)(void *, S32, void **,S32);
+ void (*mCallback)(void *, S32, void **, S32, LLExtStat);
char mRemoteFilename[LL_MAX_PATH]; /* Flawfinder : ignore */
ELLPath mRemotePath;
BOOL mDeleteRemoteOnCompletion;
@@ -45,7 +45,7 @@ class LLXfer_Mem : public LLXfer
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void*,S32,void**,S32),
+ void (*callback)(void*,S32,void**,S32,LLExtStat),
void** user_data);
virtual S32 startDownload();
@@ -59,3 +59,4 @@ class LLXfer_Mem : public LLXfer
+
diff --git a/indra/llmessage/llxfer_vfile.cpp b/indra/llmessage/llxfer_vfile.cpp
index 5030556eb0..cc5bfab64e 100644
--- a/indra/llmessage/llxfer_vfile.cpp
+++ b/indra/llmessage/llxfer_vfile.cpp
@@ -78,7 +78,7 @@ S32 LLXfer_VFile::initializeRequest(U64 xfer_id,
const LLUUID& remote_id,
LLAssetType::EType type,
const LLHost& remote_host,
- void (*callback)(void**,S32),
+ void (*callback)(void**,S32,LLExtStat),
void** user_data)
{
S32 retval = 0; // presume success
diff --git a/indra/llmessage/llxfer_vfile.h b/indra/llmessage/llxfer_vfile.h
index 3d9d8de7a7..a5dce0352c 100644
--- a/indra/llmessage/llxfer_vfile.h
+++ b/indra/llmessage/llxfer_vfile.h
@@ -45,7 +45,7 @@ class LLXfer_VFile : public LLXfer
const LLUUID &remote_id,
const LLAssetType::EType type,
const LLHost &remote_host,
- void (*callback)(void **,S32),
+ void (*callback)(void **,S32,LLExtStat),
void **user_data);
virtual S32 startDownload();
@@ -72,3 +72,4 @@ class LLXfer_VFile : public LLXfer
+
diff --git a/indra/llmessage/llxfermanager.cpp b/indra/llmessage/llxfermanager.cpp
index 98d8a626e5..00d38c4ebc 100644
--- a/indra/llmessage/llxfermanager.cpp
+++ b/indra/llmessage/llxfermanager.cpp
@@ -376,7 +376,7 @@ void LLXferManager::requestFile(const char* local_filename,
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void**,S32),
+ void (*callback)(void**,S32,LLExtStat),
void** user_data,
BOOL is_priority,
BOOL use_big_packets)
@@ -433,7 +433,7 @@ void LLXferManager::requestFile(const char* remote_filename,
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void*,S32,void**,S32),
+ void (*callback)(void*,S32,void**,S32,LLExtStat),
void** user_data,
BOOL is_priority)
{
@@ -461,7 +461,7 @@ void LLXferManager::requestVFile(const LLUUID& local_id,
const LLUUID& remote_id,
LLAssetType::EType type, LLVFS* vfs,
const LLHost& remote_host,
- void (*callback)(void**, S32),
+ void (*callback)(void**,S32,LLExtStat),
void** user_data,
BOOL is_priority)
{
@@ -1131,3 +1131,4 @@ void process_abort_xfer(LLMessageSystem *mesgsys, void **user_data)
+
diff --git a/indra/llmessage/llxfermanager.h b/indra/llmessage/llxfermanager.h
index eca3684df5..d311781746 100644
--- a/indra/llmessage/llxfermanager.h
+++ b/indra/llmessage/llxfermanager.h
@@ -125,7 +125,7 @@ class LLXferManager
ELLPath remote_path,
const LLHost& remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void**,S32), void** user_data,
+ void (*callback)(void**,S32,LLExtStat), void** user_data,
BOOL is_priority = FALSE,
BOOL use_big_packets = FALSE);
@@ -134,7 +134,7 @@ class LLXferManager
ELLPath remote_path,
const LLHost &remote_host,
BOOL delete_remote_on_completion,
- void (*callback)(void*, S32, void**, S32),
+ void (*callback)(void*, S32, void**, S32, LLExtStat),
void** user_data,
BOOL is_priority = FALSE);
@@ -143,7 +143,7 @@ class LLXferManager
virtual void requestVFile(const LLUUID &local_id, const LLUUID& remote_id,
LLAssetType::EType type, LLVFS* vfs,
const LLHost& remote_host,
- void (*callback)(void**, S32), void** user_data,
+ void (*callback)(void**,S32,LLExtStat), void** user_data,
BOOL is_priority = FALSE);
/*
@@ -185,3 +185,4 @@ void process_abort_xfer (LLMessageSystem *mesgsys, void **user_data);
#endif
+
diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp
index d0414def6d..c6911515a6 100644
--- a/indra/llmessage/message.cpp
+++ b/indra/llmessage/message.cpp
@@ -2114,7 +2114,7 @@ void LLMessageSystem::dispatch(
}
// enable this for output of message names
//llinfos << "< \"" << msg_name << "\"" << llendl;
- //lldebugs << "data: " << LLSDXMLStreamer(message) << llendl;
+ //lldebugs << "data: " << LLSDNotationStreamer(message) << llendl;
handler->post(responsep, context, message);
}
diff --git a/indra/llmessage/message_prehash.cpp b/indra/llmessage/message_prehash.cpp
index 67ee5d5675..f11c1592e1 100644
--- a/indra/llmessage/message_prehash.cpp
+++ b/indra/llmessage/message_prehash.cpp
@@ -285,6 +285,7 @@ char * _PREHASH_LogFailedMoneyTransaction;
char * _PREHASH_ViewerStartAuction;
char * _PREHASH_StartAuction;
char * _PREHASH_DuplicateFlags;
+char * _PREHASH_RegionInfo2;
char * _PREHASH_TextColor;
char * _PREHASH_SlaveID;
char * _PREHASH_Charter;
@@ -650,9 +651,9 @@ char * _PREHASH_PreyAgent;
char * _PREHASH_SimStats;
char * _PREHASH_LogoutReply;
char * _PREHASH_FeatureDisabled;
+char * _PREHASH_PhysicalAvatarEventList;
char * _PREHASH_ObjectLocalID;
char * _PREHASH_Dropped;
-char * _PREHASH_PhysicalAvatarEventList;
char * _PREHASH_WebProfilesDisabled;
char * _PREHASH_Destination;
char * _PREHASH_MasterID;
@@ -1617,6 +1618,7 @@ void init_prehash_data()
_PREHASH_ViewerStartAuction = gMessageStringTable.getString("ViewerStartAuction");
_PREHASH_StartAuction = gMessageStringTable.getString("StartAuction");
_PREHASH_DuplicateFlags = gMessageStringTable.getString("DuplicateFlags");
+ _PREHASH_RegionInfo2 = gMessageStringTable.getString("RegionInfo2");
_PREHASH_TextColor = gMessageStringTable.getString("TextColor");
_PREHASH_SlaveID = gMessageStringTable.getString("SlaveID");
_PREHASH_Charter = gMessageStringTable.getString("Charter");
@@ -1982,9 +1984,9 @@ void init_prehash_data()
_PREHASH_SimStats = gMessageStringTable.getString("SimStats");
_PREHASH_LogoutReply = gMessageStringTable.getString("LogoutReply");
_PREHASH_FeatureDisabled = gMessageStringTable.getString("FeatureDisabled");
+ _PREHASH_PhysicalAvatarEventList = gMessageStringTable.getString("PhysicalAvatarEventList");
_PREHASH_ObjectLocalID = gMessageStringTable.getString("ObjectLocalID");
_PREHASH_Dropped = gMessageStringTable.getString("Dropped");
- _PREHASH_PhysicalAvatarEventList = gMessageStringTable.getString("PhysicalAvatarEventList");
_PREHASH_WebProfilesDisabled = gMessageStringTable.getString("WebProfilesDisabled");
_PREHASH_Destination = gMessageStringTable.getString("Destination");
_PREHASH_MasterID = gMessageStringTable.getString("MasterID");
diff --git a/indra/llmessage/message_prehash.h b/indra/llmessage/message_prehash.h
index 71661ef83d..3daf1c2701 100644
--- a/indra/llmessage/message_prehash.h
+++ b/indra/llmessage/message_prehash.h
@@ -285,6 +285,7 @@ extern char * _PREHASH_LogFailedMoneyTransaction;
extern char * _PREHASH_ViewerStartAuction;
extern char * _PREHASH_StartAuction;
extern char * _PREHASH_DuplicateFlags;
+extern char * _PREHASH_RegionInfo2;
extern char * _PREHASH_TextColor;
extern char * _PREHASH_SlaveID;
extern char * _PREHASH_Charter;
@@ -650,9 +651,9 @@ extern char * _PREHASH_PreyAgent;
extern char * _PREHASH_SimStats;
extern char * _PREHASH_LogoutReply;
extern char * _PREHASH_FeatureDisabled;
+extern char * _PREHASH_PhysicalAvatarEventList;
extern char * _PREHASH_ObjectLocalID;
extern char * _PREHASH_Dropped;
-extern char * _PREHASH_PhysicalAvatarEventList;
extern char * _PREHASH_WebProfilesDisabled;
extern char * _PREHASH_Destination;
extern char * _PREHASH_MasterID;