aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmessage
diff options
context:
space:
mode:
authorJacek Antonelli2008-08-15 23:45:07 -0500
committerJacek Antonelli2008-08-15 23:45:07 -0500
commit8465910c79b8e746e04fd581cca2d60399e569b9 (patch)
treef43fec3e83c46e0d6190dca923d6fb268b52ffdd /linden/indra/llmessage
parentSecond Life viewer sources 1.18.2.1 (diff)
downloadmeta-impy-8465910c79b8e746e04fd581cca2d60399e569b9.zip
meta-impy-8465910c79b8e746e04fd581cca2d60399e569b9.tar.gz
meta-impy-8465910c79b8e746e04fd581cca2d60399e569b9.tar.bz2
meta-impy-8465910c79b8e746e04fd581cca2d60399e569b9.tar.xz
Second Life viewer sources 1.18.3.2-RC
Diffstat (limited to '')
-rw-r--r--linden/indra/llmessage/llassetstorage.cpp58
-rw-r--r--linden/indra/llmessage/llassetstorage.h33
-rw-r--r--linden/indra/llmessage/llcircuit.cpp2
-rw-r--r--linden/indra/llmessage/llhttpassetstorage.cpp14
-rw-r--r--linden/indra/llmessage/llhttpassetstorage.h2
-rw-r--r--linden/indra/llmessage/llmessageconfig.cpp2
-rwxr-xr-xlinden/indra/llmessage/llsdmessagebuilder.cpp2
-rw-r--r--linden/indra/llmessage/llteleportflags.h1
-rw-r--r--linden/indra/llmessage/lltemplatemessagereader.cpp11
-rw-r--r--linden/indra/llmessage/lltemplatemessagereader.h2
-rw-r--r--linden/indra/llmessage/lltransfersourceasset.cpp2
-rw-r--r--linden/indra/llmessage/lltransfersourceasset.h2
-rw-r--r--linden/indra/llmessage/lltransfertargetvfile.cpp3
-rw-r--r--linden/indra/llmessage/lltransfertargetvfile.h2
-rw-r--r--linden/indra/llmessage/llxfer.cpp3
-rw-r--r--linden/indra/llmessage/llxfer.h3
-rw-r--r--linden/indra/llmessage/llxfer_file.cpp2
-rw-r--r--linden/indra/llmessage/llxfer_file.h3
-rw-r--r--linden/indra/llmessage/llxfer_mem.cpp5
-rw-r--r--linden/indra/llmessage/llxfer_mem.h5
-rw-r--r--linden/indra/llmessage/llxfer_vfile.cpp2
-rw-r--r--linden/indra/llmessage/llxfer_vfile.h3
-rw-r--r--linden/indra/llmessage/llxfermanager.cpp7
-rw-r--r--linden/indra/llmessage/llxfermanager.h7
-rw-r--r--linden/indra/llmessage/message.cpp2
-rw-r--r--linden/indra/llmessage/message_prehash.cpp6
-rw-r--r--linden/indra/llmessage/message_prehash.h3
27 files changed, 104 insertions, 83 deletions
diff --git a/linden/indra/llmessage/llassetstorage.cpp b/linden/indra/llmessage/llassetstorage.cpp
index 8696438..b1d7fef 100644
--- a/linden/indra/llmessage/llassetstorage.cpp
+++ b/linden/indra/llmessage/llassetstorage.cpp
@@ -365,11 +365,11 @@ void LLAssetStorage::_cleanupRequests(BOOL all, S32 error)
365 LLAssetRequest* tmp = *curiter; 365 LLAssetRequest* tmp = *curiter;
366 if (tmp->mUpCallback) 366 if (tmp->mUpCallback)
367 { 367 {
368 tmp->mUpCallback(tmp->getUUID(), tmp->mUserData, error); 368 tmp->mUpCallback(tmp->getUUID(), tmp->mUserData, error, LL_EXSTAT_NONE);
369 } 369 }
370 if (tmp->mDownCallback) 370 if (tmp->mDownCallback)
371 { 371 {
372 tmp->mDownCallback(mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, error); 372 tmp->mDownCallback(mVFS, tmp->getUUID(), tmp->getType(), tmp->mUserData, error, LL_EXSTAT_NONE);
373 } 373 }
374 if (tmp->mInfoCallback) 374 if (tmp->mInfoCallback)
375 { 375 {
@@ -390,7 +390,7 @@ BOOL LLAssetStorage::hasLocalAsset(const LLUUID &uuid, const LLAssetType::EType
390/////////////////////////////////////////////////////////////////////////// 390///////////////////////////////////////////////////////////////////////////
391 391
392// IW - uuid is passed by value to avoid side effects, please don't re-add & 392// IW - uuid is passed by value to avoid side effects, please don't re-add &
393void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *,S32), void *user_data, BOOL is_priority) 393void 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)
394{ 394{
395 lldebugs << "LLAssetStorage::getAssetData() - " << uuid << "," << LLAssetType::lookup(type) << llendl; 395 lldebugs << "LLAssetStorage::getAssetData() - " << uuid << "," << LLAssetType::lookup(type) << llendl;
396 396
@@ -404,7 +404,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, vo
404 // Special case early out for NULL uuid 404 // Special case early out for NULL uuid
405 if (callback) 405 if (callback)
406 { 406 {
407 callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE); 407 callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);
408 } 408 }
409 return; 409 return;
410 } 410 }
@@ -459,7 +459,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, vo
459 // unless there's a weird error 459 // unless there's a weird error
460 if (callback) 460 if (callback)
461 { 461 {
462 callback(mVFS, uuid, type, user_data, LL_ERR_NOERR); 462 callback(mVFS, uuid, type, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
463 } 463 }
464 } 464 }
465} 465}
@@ -502,7 +502,7 @@ void LLAssetStorage::_queueDataRequest(const LLUUID& uuid, LLAssetType::EType at
502 llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl; 502 llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;
503 if (callback) 503 if (callback)
504 { 504 {
505 callback(mVFS, uuid, atype, user_data, LL_ERR_CIRCUIT_GONE); 505 callback(mVFS, uuid, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
506 } 506 }
507 } 507 }
508} 508}
@@ -512,7 +512,7 @@ void LLAssetStorage::downloadCompleteCallback(
512 S32 result, 512 S32 result,
513 const LLUUID& file_id, 513 const LLUUID& file_id,
514 LLAssetType::EType file_type, 514 LLAssetType::EType file_type,
515 void* user_data) 515 void* user_data, LLExtStat ext_status)
516{ 516{
517 lldebugs << "LLAssetStorage::downloadCompleteCallback() for " << file_id 517 lldebugs << "LLAssetStorage::downloadCompleteCallback() for " << file_id
518 << "," << LLAssetType::lookup(file_type) << llendl; 518 << "," << LLAssetType::lookup(file_type) << llendl;
@@ -566,7 +566,7 @@ void LLAssetStorage::downloadCompleteCallback(
566 LLAssetRequest* tmp = *curiter; 566 LLAssetRequest* tmp = *curiter;
567 if (tmp->mDownCallback) 567 if (tmp->mDownCallback)
568 { 568 {
569 tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result); 569 tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result, ext_status);
570 } 570 }
571 delete tmp; 571 delete tmp;
572 } 572 }
@@ -586,7 +586,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen
586 // Special case early out for NULL uuid 586 // Special case early out for NULL uuid
587 if (callback) 587 if (callback)
588 { 588 {
589 callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE); 589 callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);
590 } 590 }
591 return; 591 return;
592 } 592 }
@@ -642,7 +642,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen
642 llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl; 642 llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;
643 if (callback) 643 if (callback)
644 { 644 {
645 callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE); 645 callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
646 } 646 }
647 } 647 }
648 } 648 }
@@ -653,7 +653,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen
653 // unless there's a weird error 653 // unless there's a weird error
654 if (callback) 654 if (callback)
655 { 655 {
656 callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR); 656 callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
657 } 657 }
658 } 658 }
659} 659}
@@ -662,7 +662,8 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
662 S32 result, 662 S32 result,
663 const LLUUID& file_id, 663 const LLUUID& file_id,
664 LLAssetType::EType file_type, 664 LLAssetType::EType file_type,
665 void* user_data) 665 void* user_data,
666 LLExtStat ext_status)
666{ 667{
667 LLEstateAssetRequest *req = (LLEstateAssetRequest*)user_data; 668 LLEstateAssetRequest *req = (LLEstateAssetRequest*)user_data;
668 if(!req) 669 if(!req)
@@ -693,7 +694,7 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(
693 } 694 }
694 } 695 }
695 696
696 req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getAType(), req->mUserData, result); 697 req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getAType(), req->mUserData, result, ext_status);
697} 698}
698 699
699void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &agent_id, const LLUUID &session_id, 700void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &agent_id, const LLUUID &session_id,
@@ -777,7 +778,7 @@ void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &age
777 llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl; 778 llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;
778 if (callback) 779 if (callback)
779 { 780 {
780 callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE); 781 callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);
781 } 782 }
782 } 783 }
783 } 784 }
@@ -788,7 +789,7 @@ void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &age
788 // unless there's a weird error 789 // unless there's a weird error
789 if (callback) 790 if (callback)
790 { 791 {
791 callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR); 792 callback(mVFS, asset_id, atype, user_data, LL_ERR_NOERR, LL_EXSTAT_VFS_CACHED);
792 } 793 }
793 } 794 }
794} 795}
@@ -798,7 +799,8 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
798 S32 result, 799 S32 result,
799 const LLUUID& file_id, 800 const LLUUID& file_id,
800 LLAssetType::EType file_type, 801 LLAssetType::EType file_type,
801 void* user_data) 802 void* user_data,
803 LLExtStat ext_status)
802{ 804{
803 LLInvItemRequest *req = (LLInvItemRequest*)user_data; 805 LLInvItemRequest *req = (LLInvItemRequest*)user_data;
804 if(!req) 806 if(!req)
@@ -828,7 +830,7 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
828 } 830 }
829 } 831 }
830 832
831 req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), req->mUserData, result); 833 req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), req->mUserData, result, ext_status);
832} 834}
833 835
834///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 836/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -836,7 +838,7 @@ void LLAssetStorage::downloadInvItemCompleteCallback(
836///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 838/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
837 839
838// static 840// static
839void LLAssetStorage::uploadCompleteCallback(const LLUUID& uuid, void *user_data, S32 result) // StoreAssetData callback (fixed) 841void LLAssetStorage::uploadCompleteCallback(const LLUUID& uuid, void *user_data, S32 result, LLExtStat ext_status) // StoreAssetData callback (fixed)
840{ 842{
841 if (!gAssetStorage) 843 if (!gAssetStorage)
842 { 844 {
@@ -876,10 +878,10 @@ void LLAssetStorage::processUploadComplete(LLMessageSystem *msg, void **user_dat
876 msg->getBOOLFast(_PREHASH_AssetBlock, _PREHASH_Success, success); 878 msg->getBOOLFast(_PREHASH_AssetBlock, _PREHASH_Success, success);
877 879
878 asset_type = (LLAssetType::EType)asset_type_s8; 880 asset_type = (LLAssetType::EType)asset_type_s8;
879 this_ptr->_callUploadCallbacks(uuid, asset_type, success); 881 this_ptr->_callUploadCallbacks(uuid, asset_type, success, LL_EXSTAT_NONE);
880} 882}
881 883
882void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType asset_type, BOOL success) 884void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status )
883{ 885{
884 // SJB: We process the callbacks in reverse order, I do not know if this is important, 886 // SJB: We process the callbacks in reverse order, I do not know if this is important,
885 // but I didn't want to mess with it. 887 // but I didn't want to mess with it.
@@ -913,7 +915,7 @@ void LLAssetStorage::_callUploadCallbacks(const LLUUID &uuid, LLAssetType::EType
913 LLAssetRequest* req = *curiter; 915 LLAssetRequest* req = *curiter;
914 if (req->mUpCallback) 916 if (req->mUpCallback)
915 { 917 {
916 req->mUpCallback(uuid, req->mUserData, (success ? LL_ERR_NOERR : LL_ERR_ASSET_REQUEST_FAILED )); 918 req->mUpCallback(uuid, req->mUserData, (success ? LL_ERR_NOERR : LL_ERR_ASSET_REQUEST_FAILED ), ext_status );
917 } 919 }
918 delete req; 920 delete req;
919 } 921 }
@@ -1136,11 +1138,11 @@ bool LLAssetStorage::deletePendingRequest(LLAssetStorage::request_list_t* reques
1136 // Run callbacks. 1138 // Run callbacks.
1137 if (req->mUpCallback) 1139 if (req->mUpCallback)
1138 { 1140 {
1139 req->mUpCallback(req->getUUID(), req->mUserData, error); 1141 req->mUpCallback(req->getUUID(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);
1140 } 1142 }
1141 if (req->mDownCallback) 1143 if (req->mDownCallback)
1142 { 1144 {
1143 req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error); 1145 req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);
1144 } 1146 }
1145 if (req->mInfoCallback) 1147 if (req->mInfoCallback)
1146 { 1148 {
@@ -1193,7 +1195,7 @@ const char* LLAssetStorage::getErrorString(S32 status)
1193 1195
1194 1196
1195 1197
1196void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32), void *user_data, BOOL is_priority) 1198void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32, LLExtStat), void *user_data, BOOL is_priority)
1197{ 1199{
1198 // check for duplicates here, since we're about to fool the normal duplicate checker 1200 // check for duplicates here, since we're about to fool the normal duplicate checker
1199 for (request_list_t::iterator iter = mPendingDownloads.begin(); 1201 for (request_list_t::iterator iter = mPendingDownloads.begin();
@@ -1223,7 +1225,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, vo
1223} 1225}
1224 1226
1225// static 1227// static
1226void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 status) 1228void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 status, LLExtStat ext_status)
1227{ 1229{
1228 LLLegacyAssetRequest *legacy = (LLLegacyAssetRequest *)user_data; 1230 LLLegacyAssetRequest *legacy = (LLLegacyAssetRequest *)user_data;
1229 char filename[LL_MAX_PATH] = ""; /* Flawfinder: ignore */ 1231 char filename[LL_MAX_PATH] = ""; /* Flawfinder: ignore */
@@ -1259,7 +1261,7 @@ void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAss
1259 } 1261 }
1260 } 1262 }
1261 1263
1262 legacy->mDownCallback(filename, uuid, legacy->mUserData, status); 1264 legacy->mDownCallback(filename, uuid, legacy->mUserData, status, ext_status);
1263 delete legacy; 1265 delete legacy;
1264} 1266}
1265 1267
@@ -1329,12 +1331,12 @@ void LLAssetStorage::storeAssetData(
1329} 1331}
1330 1332
1331// static 1333// static
1332void LLAssetStorage::legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status) 1334void LLAssetStorage::legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status, LLExtStat ext_status)
1333{ 1335{
1334 LLLegacyAssetRequest *legacy = (LLLegacyAssetRequest *)user_data; 1336 LLLegacyAssetRequest *legacy = (LLLegacyAssetRequest *)user_data;
1335 if (legacy && legacy->mUpCallback) 1337 if (legacy && legacy->mUpCallback)
1336 { 1338 {
1337 legacy->mUpCallback(uuid, legacy->mUserData, status); 1339 legacy->mUpCallback(uuid, legacy->mUserData, status, ext_status);
1338 } 1340 }
1339 delete legacy; 1341 delete legacy;
1340} 1342}
diff --git a/linden/indra/llmessage/llassetstorage.h b/linden/indra/llmessage/llassetstorage.h
index ab12b7a..630268d 100644
--- a/linden/indra/llmessage/llassetstorage.h
+++ b/linden/indra/llmessage/llassetstorage.h
@@ -40,6 +40,7 @@
40#include "lltransfermanager.h" // For LLTSCode enum 40#include "lltransfermanager.h" // For LLTSCode enum
41#include "llassettype.h" 41#include "llassettype.h"
42#include "llstring.h" 42#include "llstring.h"
43#include "llextendedstatus.h"
43 44
44// Forward declarations 45// Forward declarations
45class LLMessageSystem; 46class LLMessageSystem;
@@ -102,8 +103,8 @@ protected:
102 LLAssetType::EType mType; 103 LLAssetType::EType mType;
103 104
104public: 105public:
105 void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32); 106 void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
106 void (*mUpCallback)(const LLUUID&, void *, S32); 107 void (*mUpCallback)(const LLUUID&, void *, S32, LLExtStat);
107 void (*mInfoCallback)(LLAssetInfo *, void *, S32); 108 void (*mInfoCallback)(LLAssetInfo *, void *, S32);
108 109
109 void *mUserData; 110 void *mUserData;
@@ -150,7 +151,7 @@ protected:
150 LLAssetType::EType mType; 151 LLAssetType::EType mType;
151 152
152public: 153public:
153 void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32); 154 void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
154 155
155 void *mUserData; 156 void *mUserData;
156 LLHost mHost; 157 LLHost mHost;
@@ -180,7 +181,7 @@ protected:
180 EstateAssetType mEstateAssetType; 181 EstateAssetType mEstateAssetType;
181 182
182public: 183public:
183 void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32); 184 void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
184 185
185 void *mUserData; 186 void *mUserData;
186 LLHost mHost; 187 LLHost mHost;
@@ -196,14 +197,14 @@ public:
196 197
197 198
198typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id, 199typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id,
199 LLAssetType::EType asset_type, void *user_data, S32 status); 200 LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status);
200 201
201class LLAssetStorage 202class LLAssetStorage
202{ 203{
203public: 204public:
204 // VFS member is public because static child methods need it :( 205 // VFS member is public because static child methods need it :(
205 LLVFS *mVFS; 206 LLVFS *mVFS;
206 typedef void (*LLStoreAssetCallback)(const LLUUID &asset_id, void *user_data, S32 status); 207 typedef void (*LLStoreAssetCallback)(const LLUUID &asset_id, void *user_data, S32 status, LLExtStat ext_status);
207 208
208 enum ERequestType 209 enum ERequestType
209 { 210 {
@@ -335,27 +336,27 @@ public:
335 S32 result, 336 S32 result,
336 const LLUUID& file_id, 337 const LLUUID& file_id,
337 LLAssetType::EType file_type, 338 LLAssetType::EType file_type,
338 void* user_data); 339 void* user_data, LLExtStat ext_status);
339 static void downloadEstateAssetCompleteCallback( 340 static void downloadEstateAssetCompleteCallback(
340 S32 result, 341 S32 result,
341 const LLUUID& file_id, 342 const LLUUID& file_id,
342 LLAssetType::EType file_type, 343 LLAssetType::EType file_type,
343 void* user_data); 344 void* user_data, LLExtStat ext_status);
344 static void downloadInvItemCompleteCallback( 345 static void downloadInvItemCompleteCallback(
345 S32 result, 346 S32 result,
346 const LLUUID& file_id, 347 const LLUUID& file_id,
347 LLAssetType::EType file_type, 348 LLAssetType::EType file_type,
348 void* user_data); 349 void* user_data, LLExtStat ext_status);
349 350
350 // upload process callbacks 351 // upload process callbacks
351 static void uploadCompleteCallback(const LLUUID&, void *user_data, S32 result); 352 static void uploadCompleteCallback(const LLUUID&, void *user_data, S32 result, LLExtStat ext_status);
352 static void processUploadComplete(LLMessageSystem *msg, void **this_handle); 353 static void processUploadComplete(LLMessageSystem *msg, void **this_handle);
353 354
354 // debugging 355 // debugging
355 static const char* getErrorString( S32 status ); 356 static const char* getErrorString( S32 status );
356 357
357 // deprecated file-based methods 358 // deprecated file-based methods
358 void getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32), void *user_data, BOOL is_priority = FALSE); 359 void getAssetData(const LLUUID uuid, LLAssetType::EType type, void (*callback)(const char*, const LLUUID&, void *, S32, LLExtStat), void *user_data, BOOL is_priority = FALSE);
359 360
360 /* 361 /*
361 * AssetID version. 362 * AssetID version.
@@ -385,8 +386,8 @@ public:
385 bool user_waiting = false, 386 bool user_waiting = false,
386 F64 timeout = LL_ASSET_STORAGE_TIMEOUT); 387 F64 timeout = LL_ASSET_STORAGE_TIMEOUT);
387 388
388 static void legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType, void *user_data, S32 status); 389 static void legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType, void *user_data, S32 status, LLExtStat ext_status);
389 static void legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status); 390 static void legacyStoreDataCallback(const LLUUID &uuid, void *user_data, S32 status, LLExtStat ext_status);
390 391
391 // Temp assets are stored on sim nodes, they have agent ID and location data associated with them. 392 // Temp assets are stored on sim nodes, they have agent ID and location data associated with them.
392 // This is a no-op for non-http asset systems 393 // This is a no-op for non-http asset systems
@@ -404,10 +405,10 @@ public:
404 405
405protected: 406protected:
406 void _cleanupRequests(BOOL all, S32 error); 407 void _cleanupRequests(BOOL all, S32 error);
407 void _callUploadCallbacks(const LLUUID &uuid, const LLAssetType::EType asset_type, BOOL success); 408 void _callUploadCallbacks(const LLUUID &uuid, const LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status);
408 409
409 virtual void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type, 410 virtual void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
410 void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32), 411 void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
411 void *user_data, BOOL duplicate, 412 void *user_data, BOOL duplicate,
412 BOOL is_priority); 413 BOOL is_priority);
413 414
@@ -425,7 +426,7 @@ private:
425class LLLegacyAssetRequest 426class LLLegacyAssetRequest
426{ 427{
427public: 428public:
428 void (*mDownCallback)(const char *, const LLUUID&, void *, S32); 429 void (*mDownCallback)(const char *, const LLUUID&, void *, S32, LLExtStat);
429 LLAssetStorage::LLStoreAssetCallback mUpCallback; 430 LLAssetStorage::LLStoreAssetCallback mUpCallback;
430 431
431 void *mUserData; 432 void *mUserData;
diff --git a/linden/indra/llmessage/llcircuit.cpp b/linden/indra/llmessage/llcircuit.cpp
index 239c1df..3c947d9 100644
--- a/linden/indra/llmessage/llcircuit.cpp
+++ b/linden/indra/llmessage/llcircuit.cpp
@@ -1158,7 +1158,7 @@ std::ostream& operator<<(std::ostream& s, LLCircuitData& circuit)
1158 s << S32(circuit.mBytesInLastPeriod * 8.f / circuit.mLastPeriodLength / 1024.f); 1158 s << S32(circuit.mBytesInLastPeriod * 8.f / circuit.mLastPeriodLength / 1024.f);
1159 s << "/"; 1159 s << "/";
1160 s << S32(circuit.mBytesOutLastPeriod * 8.f / circuit.mLastPeriodLength / 1024.f); 1160 s << S32(circuit.mBytesOutLastPeriod * 8.f / circuit.mLastPeriodLength / 1024.f);
1161 s << " Peak Kbps: "; 1161 s << " Peak kbps: ";
1162 s << S32(circuit.mPeakBPSIn / 1024.f); 1162 s << S32(circuit.mPeakBPSIn / 1024.f);
1163 s << "/"; 1163 s << "/";
1164 s << S32(circuit.mPeakBPSOut / 1024.f); 1164 s << S32(circuit.mPeakBPSOut / 1024.f);
diff --git a/linden/indra/llmessage/llhttpassetstorage.cpp b/linden/indra/llmessage/llhttpassetstorage.cpp
index b6c20b9..924d903 100644
--- a/linden/indra/llmessage/llhttpassetstorage.cpp
+++ b/linden/indra/llmessage/llhttpassetstorage.cpp
@@ -464,7 +464,7 @@ void LLHTTPAssetStorage::storeAssetData(
464 llwarns << "AssetStorage: attempt to upload non-existent vfile " << uuid << ":" << LLAssetType::lookup(type) << llendl; 464 llwarns << "AssetStorage: attempt to upload non-existent vfile " << uuid << ":" << LLAssetType::lookup(type) << llendl;
465 if (callback) 465 if (callback)
466 { 466 {
467 callback(uuid, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE ); 467 callback(uuid, user_data, LL_ERR_ASSET_REQUEST_NONEXISTENT_FILE, LL_EXSTAT_NONEXISTENT_FILE);
468 } 468 }
469 } 469 }
470} 470}
@@ -529,7 +529,7 @@ void LLHTTPAssetStorage::storeAssetData(
529 { 529 {
530 if (callback) 530 if (callback)
531 { 531 {
532 callback(LLUUID::null, user_data, LL_ERR_CANNOT_OPEN_FILE); 532 callback(LLUUID::null, user_data, LL_ERR_CANNOT_OPEN_FILE, LL_EXSTAT_BLOCKED_FILE);
533 } 533 }
534 } 534 }
535 // Coverity CID-269 says there's a leak of 'legacy' here, but 535 // Coverity CID-269 says there's a leak of 'legacy' here, but
@@ -631,7 +631,7 @@ bool LLHTTPAssetStorage::deletePendingRequest(LLAssetStorage::ERequestType rt,
631 { 631 {
632 if (pending_req->mUpCallback) //Clean up here rather than _callUploadCallbacks because this request is already cleared the req. 632 if (pending_req->mUpCallback) //Clean up here rather than _callUploadCallbacks because this request is already cleared the req.
633 { 633 {
634 pending_req->mUpCallback(pending_req->getUUID(), pending_req->mUserData, -1); 634 pending_req->mUpCallback(pending_req->getUUID(), pending_req->mUserData, -1, LL_EXSTAT_REQUEST_DROPPED);
635 } 635 }
636 636
637 } 637 }
@@ -657,7 +657,7 @@ bool LLHTTPAssetStorage::deletePendingRequest(LLAssetStorage::ERequestType rt,
657 657
658// internal requester, used by getAssetData in superclass 658// internal requester, used by getAssetData in superclass
659void LLHTTPAssetStorage::_queueDataRequest(const LLUUID& uuid, LLAssetType::EType type, 659void LLHTTPAssetStorage::_queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
660 void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32), 660 void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
661 void *user_data, BOOL duplicate, 661 void *user_data, BOOL duplicate,
662 BOOL is_priority) 662 BOOL is_priority)
663{ 663{
@@ -922,7 +922,7 @@ void LLHTTPAssetStorage::checkForTimeouts()
922 { 922 {
923 // shared upload finished callback 923 // shared upload finished callback
924 // in the base class, this is called from processUploadComplete 924 // in the base class, this is called from processUploadComplete
925 _callUploadCallbacks(req->getUUID(), req->getType(), (xfer_result == 0)); 925 _callUploadCallbacks(req->getUUID(), req->getType(), (xfer_result == 0), LL_EXSTAT_CURL_RESULT | curl_result);
926 // Pending upload flag will get cleared when the request is deleted 926 // Pending upload flag will get cleared when the request is deleted
927 } 927 }
928 } 928 }
@@ -964,7 +964,8 @@ void LLHTTPAssetStorage::checkForTimeouts()
964 xfer_result, 964 xfer_result,
965 req->getUUID(), 965 req->getUUID(),
966 req->getType(), 966 req->getType(),
967 (void *)req); 967 (void *)req,
968 LL_EXSTAT_CURL_RESULT | curl_result);
968 // Pending download flag will get cleared when the request is deleted 969 // Pending download flag will get cleared when the request is deleted
969 } 970 }
970 else 971 else
@@ -1389,3 +1390,4 @@ void LLHTTPAssetStorage::clearTempAssetData()
1389 mTempAssets.clear(); 1390 mTempAssets.clear();
1390} 1391}
1391 1392
1393
diff --git a/linden/indra/llmessage/llhttpassetstorage.h b/linden/indra/llmessage/llhttpassetstorage.h
index 962bece..7fee143 100644
--- a/linden/indra/llmessage/llhttpassetstorage.h
+++ b/linden/indra/llmessage/llhttpassetstorage.h
@@ -128,7 +128,7 @@ public:
128 128
129protected: 129protected:
130 void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type, 130 void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
131 void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32), 131 void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
132 void *user_data, BOOL duplicate, BOOL is_priority); 132 void *user_data, BOOL duplicate, BOOL is_priority);
133 133
134private: 134private:
diff --git a/linden/indra/llmessage/llmessageconfig.cpp b/linden/indra/llmessage/llmessageconfig.cpp
index 6ecb1ad..a619e80 100644
--- a/linden/indra/llmessage/llmessageconfig.cpp
+++ b/linden/indra/llmessage/llmessageconfig.cpp
@@ -163,7 +163,7 @@ void LLMessageConfigFile::loadMessageBans(const LLSD& data)
163 163
164bool LLMessageConfigFile::isCapBanned(const std::string& cap_name) const 164bool LLMessageConfigFile::isCapBanned(const std::string& cap_name) const
165{ 165{
166 llinfos << "mCapBans is " << LLSDXMLStreamer(mCapBans) << llendl; 166 lldebugs << "mCapBans is " << LLSDNotationStreamer(mCapBans) << llendl;
167 return mCapBans[cap_name]; 167 return mCapBans[cap_name];
168} 168}
169 169
diff --git a/linden/indra/llmessage/llsdmessagebuilder.cpp b/linden/indra/llmessage/llsdmessagebuilder.cpp
index d3dcd5b..f8fb30e 100755
--- a/linden/indra/llmessage/llsdmessagebuilder.cpp
+++ b/linden/indra/llmessage/llsdmessagebuilder.cpp
@@ -276,7 +276,7 @@ void LLSDMessageBuilder::copyFromMessageData(const LLMsgData& data)
276void LLSDMessageBuilder::copyFromLLSD(const LLSD& msg) 276void LLSDMessageBuilder::copyFromLLSD(const LLSD& msg)
277{ 277{
278 mCurrentMessage = msg; 278 mCurrentMessage = msg;
279 lldebugs << LLSDXMLStreamer(mCurrentMessage) << llendl; 279 lldebugs << LLSDNotationStreamer(mCurrentMessage) << llendl;
280} 280}
281 281
282const LLSD& LLSDMessageBuilder::getMessage() const 282const LLSD& LLSDMessageBuilder::getMessage() const
diff --git a/linden/indra/llmessage/llteleportflags.h b/linden/indra/llmessage/llteleportflags.h
index 60916bd..a40b081 100644
--- a/linden/indra/llmessage/llteleportflags.h
+++ b/linden/indra/llmessage/llteleportflags.h
@@ -45,6 +45,7 @@ const U32 TELEPORT_FLAGS_DISABLE_CANCEL = 1 << 11; // Used for llTeleportAgentH
45const U32 TELEPORT_FLAGS_VIA_REGION_ID = 1 << 12; 45const U32 TELEPORT_FLAGS_VIA_REGION_ID = 1 << 12;
46const U32 TELEPORT_FLAGS_IS_FLYING = 1 << 13; 46const U32 TELEPORT_FLAGS_IS_FLYING = 1 << 13;
47const U32 TELEPORT_FLAGS_SHOW_RESET_HOME = 1 << 14; 47const U32 TELEPORT_FLAGS_SHOW_RESET_HOME = 1 << 14;
48const U32 TELEPORT_FLAGS_FORCE_REDIRECT = 1 << 15; // used to force a redirect to some random location - used when kicking someone from land.
48 49
49const U32 TELEPORT_FLAGS_MASK_VIA = TELEPORT_FLAGS_VIA_LURE 50const U32 TELEPORT_FLAGS_MASK_VIA = TELEPORT_FLAGS_VIA_LURE
50 | TELEPORT_FLAGS_VIA_LANDMARK 51 | TELEPORT_FLAGS_VIA_LANDMARK
diff --git a/linden/indra/llmessage/lltemplatemessagereader.cpp b/linden/indra/llmessage/lltemplatemessagereader.cpp
index 329d2a8..4cde483 100644
--- a/linden/indra/llmessage/lltemplatemessagereader.cpp
+++ b/linden/indra/llmessage/lltemplatemessagereader.cpp
@@ -502,12 +502,15 @@ BOOL LLTemplateMessageReader::decodeTemplate(
502 return(TRUE); 502 return(TRUE);
503} 503}
504 504
505void LLTemplateMessageReader::logRanOffEndOfPacket( const LLHost& host ) 505void LLTemplateMessageReader::logRanOffEndOfPacket( const LLHost& host, const S32 where, const S32 wanted )
506{ 506{
507 // we've run off the end of the packet! 507 // we've run off the end of the packet!
508 llwarns << "Ran off end of packet " << mCurrentRMessageTemplate->mName 508 llwarns << "Ran off end of packet " << mCurrentRMessageTemplate->mName
509// << " with id " << mCurrentRecvPacketID 509// << " with id " << mCurrentRecvPacketID
510 << " from " << host 510 << " from " << host
511 << " trying to read " << wanted
512 << " bytes at position " << where
513 << " going past packet end at " << mReceiveSize
511 << llendl; 514 << llendl;
512 if(gMessageSystem->mVerboseLog) 515 if(gMessageSystem->mVerboseLog)
513 { 516 {
@@ -562,7 +565,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
562 // repeat number is a single byte 565 // repeat number is a single byte
563 if (decode_pos >= mReceiveSize) 566 if (decode_pos >= mReceiveSize)
564 { 567 {
565 logRanOffEndOfPacket(sender); 568 logRanOffEndOfPacket(sender, decode_pos, 1);
566 569
567 // default to 0 repeats 570 // default to 0 repeats
568 repeat_number = 0; 571 repeat_number = 0;
@@ -621,7 +624,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
621 624
622 if ((decode_pos + data_size) > mReceiveSize) 625 if ((decode_pos + data_size) > mReceiveSize)
623 { 626 {
624 logRanOffEndOfPacket(sender); 627 logRanOffEndOfPacket(sender, decode_pos, data_size);
625 628
626 // default to 0 length variable blocks 629 // default to 0 length variable blocks
627 tsize = 0; 630 tsize = 0;
@@ -657,7 +660,7 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
657 // so, copy data pointer and set data size to fixed size 660 // so, copy data pointer and set data size to fixed size
658 if ((decode_pos + mvci.getSize()) > mReceiveSize) 661 if ((decode_pos + mvci.getSize()) > mReceiveSize)
659 { 662 {
660 logRanOffEndOfPacket(sender); 663 logRanOffEndOfPacket(sender, decode_pos, mvci.getSize());
661 664
662 // default to 0s. 665 // default to 0s.
663 U32 size = mvci.getSize(); 666 U32 size = mvci.getSize();
diff --git a/linden/indra/llmessage/lltemplatemessagereader.h b/linden/indra/llmessage/lltemplatemessagereader.h
index 86d4ab6..687b75b 100644
--- a/linden/indra/llmessage/lltemplatemessagereader.h
+++ b/linden/indra/llmessage/lltemplatemessagereader.h
@@ -113,7 +113,7 @@ private:
113 BOOL decodeTemplate(const U8* buffer, S32 buffer_size, // inputs 113 BOOL decodeTemplate(const U8* buffer, S32 buffer_size, // inputs
114 LLMessageTemplate** msg_template ); // outputs 114 LLMessageTemplate** msg_template ); // outputs
115 115
116 void logRanOffEndOfPacket( const LLHost& host ); 116 void logRanOffEndOfPacket( const LLHost& host, const S32 where, const S32 wanted );
117 117
118 BOOL decodeData(const U8* buffer, const LLHost& sender ); 118 BOOL decodeData(const U8* buffer, const LLHost& sender );
119 119
diff --git a/linden/indra/llmessage/lltransfersourceasset.cpp b/linden/indra/llmessage/lltransfersourceasset.cpp
index 31094c1..cfc7561 100644
--- a/linden/indra/llmessage/lltransfersourceasset.cpp
+++ b/linden/indra/llmessage/lltransfersourceasset.cpp
@@ -174,7 +174,7 @@ BOOL LLTransferSourceAsset::unpackParams(LLDataPacker &dp)
174 174
175 175
176void LLTransferSourceAsset::responderCallback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type, 176void LLTransferSourceAsset::responderCallback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type,
177 void *user_data, S32 result) 177 void *user_data, S32 result, LLExtStat ext_status )
178{ 178{
179 LLUUID *tidp = ((LLUUID*) user_data); 179 LLUUID *tidp = ((LLUUID*) user_data);
180 LLUUID transfer_id = *(tidp); 180 LLUUID transfer_id = *(tidp);
diff --git a/linden/indra/llmessage/lltransfersourceasset.h b/linden/indra/llmessage/lltransfersourceasset.h
index 7b1aa63..b953f78 100644
--- a/linden/indra/llmessage/lltransfersourceasset.h
+++ b/linden/indra/llmessage/lltransfersourceasset.h
@@ -59,7 +59,7 @@ public:
59 virtual ~LLTransferSourceAsset(); 59 virtual ~LLTransferSourceAsset();
60 60
61 static void responderCallback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type, 61 static void responderCallback(LLVFS *vfs, const LLUUID& uuid, LLAssetType::EType type,
62 void *user_data, S32 result); 62 void *user_data, S32 result, LLExtStat ext_status );
63protected: 63protected:
64 /*virtual*/ void initTransfer(); 64 /*virtual*/ void initTransfer();
65 /*virtual*/ F32 updatePriority(); 65 /*virtual*/ F32 updatePriority();
diff --git a/linden/indra/llmessage/lltransfertargetvfile.cpp b/linden/indra/llmessage/lltransfertargetvfile.cpp
index 79919b8..6f2252d 100644
--- a/linden/indra/llmessage/lltransfertargetvfile.cpp
+++ b/linden/indra/llmessage/lltransfertargetvfile.cpp
@@ -215,6 +215,7 @@ void LLTransferTargetVFile::completionCallback(const LLTSCode status)
215 mParams.mCompleteCallback(err_code, 215 mParams.mCompleteCallback(err_code,
216 mParams.getAssetID(), 216 mParams.getAssetID(),
217 mParams.getAssetType(), 217 mParams.getAssetType(),
218 mParams.mUserDatap); 218 mParams.mUserDatap,
219 LL_EXSTAT_NONE);
219 } 220 }
220} 221}
diff --git a/linden/indra/llmessage/lltransfertargetvfile.h b/linden/indra/llmessage/lltransfertargetvfile.h
index 6ba8745..98fcbc9 100644
--- a/linden/indra/llmessage/lltransfertargetvfile.h
+++ b/linden/indra/llmessage/lltransfertargetvfile.h
@@ -41,7 +41,7 @@ typedef void (*LLTTVFCompleteCallback)(
41 S32 status, 41 S32 status,
42 const LLUUID& file_id, 42 const LLUUID& file_id,
43 LLAssetType::EType file_type, 43 LLAssetType::EType file_type,
44 void* user_data); 44 void* user_data, LLExtStat ext_status );
45 45
46class LLTransferTargetParamsVFile : public LLTransferTargetParams 46class LLTransferTargetParamsVFile : public LLTransferTargetParams
47{ 47{
diff --git a/linden/indra/llmessage/llxfer.cpp b/linden/indra/llmessage/llxfer.cpp
index e12996d..4647980 100644
--- a/linden/indra/llmessage/llxfer.cpp
+++ b/linden/indra/llmessage/llxfer.cpp
@@ -301,7 +301,7 @@ S32 LLXfer::processEOF()
301 301
302 if (mCallback) 302 if (mCallback)
303 { 303 {
304 mCallback(mCallbackDataHandle,mCallbackResult); 304 mCallback(mCallbackDataHandle,mCallbackResult,LL_EXSTAT_NONE);
305 } 305 }
306 306
307 return(retval); 307 return(retval);
@@ -375,3 +375,4 @@ std::ostream& operator<< (std::ostream& os, LLXfer &hh)
375 375
376 376
377 377
378
diff --git a/linden/indra/llmessage/llxfer.h b/linden/indra/llmessage/llxfer.h
index 51d7731..de93dba 100644
--- a/linden/indra/llmessage/llxfer.h
+++ b/linden/indra/llmessage/llxfer.h
@@ -67,7 +67,7 @@ class LLXfer
67 67
68 BOOL mWaitingForACK; 68 BOOL mWaitingForACK;
69 69
70 void (*mCallback)(void **,S32); 70 void (*mCallback)(void **,S32,LLExtStat);
71 void **mCallbackDataHandle; 71 void **mCallbackDataHandle;
72 S32 mCallbackResult; 72 S32 mCallbackResult;
73 73
@@ -116,3 +116,4 @@ class LLXfer
116 116
117 117
118 118
119
diff --git a/linden/indra/llmessage/llxfer_file.cpp b/linden/indra/llmessage/llxfer_file.cpp
index b36dd5a..7478316 100644
--- a/linden/indra/llmessage/llxfer_file.cpp
+++ b/linden/indra/llmessage/llxfer_file.cpp
@@ -123,7 +123,7 @@ S32 LLXfer_File::initializeRequest(U64 xfer_id,
123 ELLPath remote_path, 123 ELLPath remote_path,
124 const LLHost& remote_host, 124 const LLHost& remote_host,
125 BOOL delete_remote_on_completion, 125 BOOL delete_remote_on_completion,
126 void (*callback)(void**,S32), 126 void (*callback)(void**,S32,LLExtStat),
127 void** user_data) 127 void** user_data)
128{ 128{
129 S32 retval = 0; // presume success 129 S32 retval = 0; // presume success
diff --git a/linden/indra/llmessage/llxfer_file.h b/linden/indra/llmessage/llxfer_file.h
index 6a9ee51..4d34acb 100644
--- a/linden/indra/llmessage/llxfer_file.h
+++ b/linden/indra/llmessage/llxfer_file.h
@@ -60,7 +60,7 @@ class LLXfer_File : public LLXfer
60 ELLPath remote_path, 60 ELLPath remote_path,
61 const LLHost& remote_host, 61 const LLHost& remote_host,
62 BOOL delete_remote_on_completion, 62 BOOL delete_remote_on_completion,
63 void (*callback)(void**,S32), 63 void (*callback)(void**,S32,LLExtStat),
64 void** user_data); 64 void** user_data);
65 virtual S32 startDownload(); 65 virtual S32 startDownload();
66 66
@@ -86,3 +86,4 @@ class LLXfer_File : public LLXfer
86 86
87 87
88 88
89
diff --git a/linden/indra/llmessage/llxfer_mem.cpp b/linden/indra/llmessage/llxfer_mem.cpp
index 0f055c8..223ce08 100644
--- a/linden/indra/llmessage/llxfer_mem.cpp
+++ b/linden/indra/llmessage/llxfer_mem.cpp
@@ -136,7 +136,7 @@ S32 LLXfer_Mem::processEOF()
136 136
137 if (mCallback) 137 if (mCallback)
138 { 138 {
139 mCallback((void *)mBuffer,mBufferLength,mCallbackDataHandle,mCallbackResult); 139 mCallback((void *)mBuffer,mBufferLength,mCallbackDataHandle,mCallbackResult,LL_EXSTAT_NONE);
140 } 140 }
141 141
142 return(retval); 142 return(retval);
@@ -149,7 +149,7 @@ S32 LLXfer_Mem::initializeRequest(U64 xfer_id,
149 ELLPath remote_path, 149 ELLPath remote_path,
150 const LLHost& remote_host, 150 const LLHost& remote_host,
151 BOOL delete_remote_on_completion, 151 BOOL delete_remote_on_completion,
152 void (*callback)(void*,S32,void**,S32), 152 void (*callback)(void*,S32,void**,S32,LLExtStat),
153 void** user_data) 153 void** user_data)
154{ 154{
155 S32 retval = 0; // presume success 155 S32 retval = 0; // presume success
@@ -218,3 +218,4 @@ U32 LLXfer_Mem::getXferTypeTag()
218 218
219 219
220 220
221
diff --git a/linden/indra/llmessage/llxfer_mem.h b/linden/indra/llmessage/llxfer_mem.h
index b80807a..8523c7d 100644
--- a/linden/indra/llmessage/llxfer_mem.h
+++ b/linden/indra/llmessage/llxfer_mem.h
@@ -40,7 +40,7 @@ class LLXfer_Mem : public LLXfer
40{ 40{
41 private: 41 private:
42 protected: 42 protected:
43 void (*mCallback)(void *, S32, void **,S32); 43 void (*mCallback)(void *, S32, void **, S32, LLExtStat);
44 char mRemoteFilename[LL_MAX_PATH]; /* Flawfinder : ignore */ 44 char mRemoteFilename[LL_MAX_PATH]; /* Flawfinder : ignore */
45 ELLPath mRemotePath; 45 ELLPath mRemotePath;
46 BOOL mDeleteRemoteOnCompletion; 46 BOOL mDeleteRemoteOnCompletion;
@@ -65,7 +65,7 @@ class LLXfer_Mem : public LLXfer
65 ELLPath remote_path, 65 ELLPath remote_path,
66 const LLHost& remote_host, 66 const LLHost& remote_host,
67 BOOL delete_remote_on_completion, 67 BOOL delete_remote_on_completion,
68 void (*callback)(void*,S32,void**,S32), 68 void (*callback)(void*,S32,void**,S32,LLExtStat),
69 void** user_data); 69 void** user_data);
70 virtual S32 startDownload(); 70 virtual S32 startDownload();
71 71
@@ -79,3 +79,4 @@ class LLXfer_Mem : public LLXfer
79 79
80 80
81 81
82
diff --git a/linden/indra/llmessage/llxfer_vfile.cpp b/linden/indra/llmessage/llxfer_vfile.cpp
index 0d0d5fe..54b9683 100644
--- a/linden/indra/llmessage/llxfer_vfile.cpp
+++ b/linden/indra/llmessage/llxfer_vfile.cpp
@@ -98,7 +98,7 @@ S32 LLXfer_VFile::initializeRequest(U64 xfer_id,
98 const LLUUID& remote_id, 98 const LLUUID& remote_id,
99 LLAssetType::EType type, 99 LLAssetType::EType type,
100 const LLHost& remote_host, 100 const LLHost& remote_host,
101 void (*callback)(void**,S32), 101 void (*callback)(void**,S32,LLExtStat),
102 void** user_data) 102 void** user_data)
103{ 103{
104 S32 retval = 0; // presume success 104 S32 retval = 0; // presume success
diff --git a/linden/indra/llmessage/llxfer_vfile.h b/linden/indra/llmessage/llxfer_vfile.h
index e71a0e8..1362749 100644
--- a/linden/indra/llmessage/llxfer_vfile.h
+++ b/linden/indra/llmessage/llxfer_vfile.h
@@ -65,7 +65,7 @@ class LLXfer_VFile : public LLXfer
65 const LLUUID &remote_id, 65 const LLUUID &remote_id,
66 const LLAssetType::EType type, 66 const LLAssetType::EType type,
67 const LLHost &remote_host, 67 const LLHost &remote_host,
68 void (*callback)(void **,S32), 68 void (*callback)(void **,S32,LLExtStat),
69 void **user_data); 69 void **user_data);
70 virtual S32 startDownload(); 70 virtual S32 startDownload();
71 71
@@ -92,3 +92,4 @@ class LLXfer_VFile : public LLXfer
92 92
93 93
94 94
95
diff --git a/linden/indra/llmessage/llxfermanager.cpp b/linden/indra/llmessage/llxfermanager.cpp
index 7758a32..b9a2c3e 100644
--- a/linden/indra/llmessage/llxfermanager.cpp
+++ b/linden/indra/llmessage/llxfermanager.cpp
@@ -396,7 +396,7 @@ void LLXferManager::requestFile(const char* local_filename,
396 ELLPath remote_path, 396 ELLPath remote_path,
397 const LLHost& remote_host, 397 const LLHost& remote_host,
398 BOOL delete_remote_on_completion, 398 BOOL delete_remote_on_completion,
399 void (*callback)(void**,S32), 399 void (*callback)(void**,S32,LLExtStat),
400 void** user_data, 400 void** user_data,
401 BOOL is_priority, 401 BOOL is_priority,
402 BOOL use_big_packets) 402 BOOL use_big_packets)
@@ -453,7 +453,7 @@ void LLXferManager::requestFile(const char* remote_filename,
453 ELLPath remote_path, 453 ELLPath remote_path,
454 const LLHost& remote_host, 454 const LLHost& remote_host,
455 BOOL delete_remote_on_completion, 455 BOOL delete_remote_on_completion,
456 void (*callback)(void*,S32,void**,S32), 456 void (*callback)(void*,S32,void**,S32,LLExtStat),
457 void** user_data, 457 void** user_data,
458 BOOL is_priority) 458 BOOL is_priority)
459{ 459{
@@ -481,7 +481,7 @@ void LLXferManager::requestVFile(const LLUUID& local_id,
481 const LLUUID& remote_id, 481 const LLUUID& remote_id,
482 LLAssetType::EType type, LLVFS* vfs, 482 LLAssetType::EType type, LLVFS* vfs,
483 const LLHost& remote_host, 483 const LLHost& remote_host,
484 void (*callback)(void**, S32), 484 void (*callback)(void**,S32,LLExtStat),
485 void** user_data, 485 void** user_data,
486 BOOL is_priority) 486 BOOL is_priority)
487{ 487{
@@ -1151,3 +1151,4 @@ void process_abort_xfer(LLMessageSystem *mesgsys, void **user_data)
1151 1151
1152 1152
1153 1153
1154
diff --git a/linden/indra/llmessage/llxfermanager.h b/linden/indra/llmessage/llxfermanager.h
index 7b529ad..62969d9 100644
--- a/linden/indra/llmessage/llxfermanager.h
+++ b/linden/indra/llmessage/llxfermanager.h
@@ -145,7 +145,7 @@ class LLXferManager
145 ELLPath remote_path, 145 ELLPath remote_path,
146 const LLHost& remote_host, 146 const LLHost& remote_host,
147 BOOL delete_remote_on_completion, 147 BOOL delete_remote_on_completion,
148 void (*callback)(void**,S32), void** user_data, 148 void (*callback)(void**,S32,LLExtStat), void** user_data,
149 BOOL is_priority = FALSE, 149 BOOL is_priority = FALSE,
150 BOOL use_big_packets = FALSE); 150 BOOL use_big_packets = FALSE);
151 151
@@ -154,7 +154,7 @@ class LLXferManager
154 ELLPath remote_path, 154 ELLPath remote_path,
155 const LLHost &remote_host, 155 const LLHost &remote_host,
156 BOOL delete_remote_on_completion, 156 BOOL delete_remote_on_completion,
157 void (*callback)(void*, S32, void**, S32), 157 void (*callback)(void*, S32, void**, S32, LLExtStat),
158 void** user_data, 158 void** user_data,
159 BOOL is_priority = FALSE); 159 BOOL is_priority = FALSE);
160 160
@@ -163,7 +163,7 @@ class LLXferManager
163 virtual void requestVFile(const LLUUID &local_id, const LLUUID& remote_id, 163 virtual void requestVFile(const LLUUID &local_id, const LLUUID& remote_id,
164 LLAssetType::EType type, LLVFS* vfs, 164 LLAssetType::EType type, LLVFS* vfs,
165 const LLHost& remote_host, 165 const LLHost& remote_host,
166 void (*callback)(void**, S32), void** user_data, 166 void (*callback)(void**,S32,LLExtStat), void** user_data,
167 BOOL is_priority = FALSE); 167 BOOL is_priority = FALSE);
168 168
169/* 169/*
@@ -205,3 +205,4 @@ void process_abort_xfer (LLMessageSystem *mesgsys, void **user_data);
205#endif 205#endif
206 206
207 207
208
diff --git a/linden/indra/llmessage/message.cpp b/linden/indra/llmessage/message.cpp
index a9d5dd3..70b8166 100644
--- a/linden/indra/llmessage/message.cpp
+++ b/linden/indra/llmessage/message.cpp
@@ -2134,7 +2134,7 @@ void LLMessageSystem::dispatch(
2134 } 2134 }
2135 // enable this for output of message names 2135 // enable this for output of message names
2136 //llinfos << "< \"" << msg_name << "\"" << llendl; 2136 //llinfos << "< \"" << msg_name << "\"" << llendl;
2137 //lldebugs << "data: " << LLSDXMLStreamer(message) << llendl; 2137 //lldebugs << "data: " << LLSDNotationStreamer(message) << llendl;
2138 2138
2139 handler->post(responsep, context, message); 2139 handler->post(responsep, context, message);
2140} 2140}
diff --git a/linden/indra/llmessage/message_prehash.cpp b/linden/indra/llmessage/message_prehash.cpp
index fbe5c33..ce532e1 100644
--- a/linden/indra/llmessage/message_prehash.cpp
+++ b/linden/indra/llmessage/message_prehash.cpp
@@ -305,6 +305,7 @@ char * _PREHASH_LogFailedMoneyTransaction;
305char * _PREHASH_ViewerStartAuction; 305char * _PREHASH_ViewerStartAuction;
306char * _PREHASH_StartAuction; 306char * _PREHASH_StartAuction;
307char * _PREHASH_DuplicateFlags; 307char * _PREHASH_DuplicateFlags;
308char * _PREHASH_RegionInfo2;
308char * _PREHASH_TextColor; 309char * _PREHASH_TextColor;
309char * _PREHASH_SlaveID; 310char * _PREHASH_SlaveID;
310char * _PREHASH_Charter; 311char * _PREHASH_Charter;
@@ -670,9 +671,9 @@ char * _PREHASH_PreyAgent;
670char * _PREHASH_SimStats; 671char * _PREHASH_SimStats;
671char * _PREHASH_LogoutReply; 672char * _PREHASH_LogoutReply;
672char * _PREHASH_FeatureDisabled; 673char * _PREHASH_FeatureDisabled;
674char * _PREHASH_PhysicalAvatarEventList;
673char * _PREHASH_ObjectLocalID; 675char * _PREHASH_ObjectLocalID;
674char * _PREHASH_Dropped; 676char * _PREHASH_Dropped;
675char * _PREHASH_PhysicalAvatarEventList;
676char * _PREHASH_WebProfilesDisabled; 677char * _PREHASH_WebProfilesDisabled;
677char * _PREHASH_Destination; 678char * _PREHASH_Destination;
678char * _PREHASH_MasterID; 679char * _PREHASH_MasterID;
@@ -1637,6 +1638,7 @@ void init_prehash_data()
1637 _PREHASH_ViewerStartAuction = gMessageStringTable.getString("ViewerStartAuction"); 1638 _PREHASH_ViewerStartAuction = gMessageStringTable.getString("ViewerStartAuction");
1638 _PREHASH_StartAuction = gMessageStringTable.getString("StartAuction"); 1639 _PREHASH_StartAuction = gMessageStringTable.getString("StartAuction");
1639 _PREHASH_DuplicateFlags = gMessageStringTable.getString("DuplicateFlags"); 1640 _PREHASH_DuplicateFlags = gMessageStringTable.getString("DuplicateFlags");
1641 _PREHASH_RegionInfo2 = gMessageStringTable.getString("RegionInfo2");
1640 _PREHASH_TextColor = gMessageStringTable.getString("TextColor"); 1642 _PREHASH_TextColor = gMessageStringTable.getString("TextColor");
1641 _PREHASH_SlaveID = gMessageStringTable.getString("SlaveID"); 1643 _PREHASH_SlaveID = gMessageStringTable.getString("SlaveID");
1642 _PREHASH_Charter = gMessageStringTable.getString("Charter"); 1644 _PREHASH_Charter = gMessageStringTable.getString("Charter");
@@ -2002,9 +2004,9 @@ void init_prehash_data()
2002 _PREHASH_SimStats = gMessageStringTable.getString("SimStats"); 2004 _PREHASH_SimStats = gMessageStringTable.getString("SimStats");
2003 _PREHASH_LogoutReply = gMessageStringTable.getString("LogoutReply"); 2005 _PREHASH_LogoutReply = gMessageStringTable.getString("LogoutReply");
2004 _PREHASH_FeatureDisabled = gMessageStringTable.getString("FeatureDisabled"); 2006 _PREHASH_FeatureDisabled = gMessageStringTable.getString("FeatureDisabled");
2007 _PREHASH_PhysicalAvatarEventList = gMessageStringTable.getString("PhysicalAvatarEventList");
2005 _PREHASH_ObjectLocalID = gMessageStringTable.getString("ObjectLocalID"); 2008 _PREHASH_ObjectLocalID = gMessageStringTable.getString("ObjectLocalID");
2006 _PREHASH_Dropped = gMessageStringTable.getString("Dropped"); 2009 _PREHASH_Dropped = gMessageStringTable.getString("Dropped");
2007 _PREHASH_PhysicalAvatarEventList = gMessageStringTable.getString("PhysicalAvatarEventList");
2008 _PREHASH_WebProfilesDisabled = gMessageStringTable.getString("WebProfilesDisabled"); 2010 _PREHASH_WebProfilesDisabled = gMessageStringTable.getString("WebProfilesDisabled");
2009 _PREHASH_Destination = gMessageStringTable.getString("Destination"); 2011 _PREHASH_Destination = gMessageStringTable.getString("Destination");
2010 _PREHASH_MasterID = gMessageStringTable.getString("MasterID"); 2012 _PREHASH_MasterID = gMessageStringTable.getString("MasterID");
diff --git a/linden/indra/llmessage/message_prehash.h b/linden/indra/llmessage/message_prehash.h
index b75edca..672cd14 100644
--- a/linden/indra/llmessage/message_prehash.h
+++ b/linden/indra/llmessage/message_prehash.h
@@ -305,6 +305,7 @@ extern char * _PREHASH_LogFailedMoneyTransaction;
305extern char * _PREHASH_ViewerStartAuction; 305extern char * _PREHASH_ViewerStartAuction;
306extern char * _PREHASH_StartAuction; 306extern char * _PREHASH_StartAuction;
307extern char * _PREHASH_DuplicateFlags; 307extern char * _PREHASH_DuplicateFlags;
308extern char * _PREHASH_RegionInfo2;
308extern char * _PREHASH_TextColor; 309extern char * _PREHASH_TextColor;
309extern char * _PREHASH_SlaveID; 310extern char * _PREHASH_SlaveID;
310extern char * _PREHASH_Charter; 311extern char * _PREHASH_Charter;
@@ -670,9 +671,9 @@ extern char * _PREHASH_PreyAgent;
670extern char * _PREHASH_SimStats; 671extern char * _PREHASH_SimStats;
671extern char * _PREHASH_LogoutReply; 672extern char * _PREHASH_LogoutReply;
672extern char * _PREHASH_FeatureDisabled; 673extern char * _PREHASH_FeatureDisabled;
674extern char * _PREHASH_PhysicalAvatarEventList;
673extern char * _PREHASH_ObjectLocalID; 675extern char * _PREHASH_ObjectLocalID;
674extern char * _PREHASH_Dropped; 676extern char * _PREHASH_Dropped;
675extern char * _PREHASH_PhysicalAvatarEventList;
676extern char * _PREHASH_WebProfilesDisabled; 677extern char * _PREHASH_WebProfilesDisabled;
677extern char * _PREHASH_Destination; 678extern char * _PREHASH_Destination;
678extern char * _PREHASH_MasterID; 679extern char * _PREHASH_MasterID;