diff options
Diffstat (limited to 'indra/llmessage')
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; |