summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorymodelbackgroundfetch.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2023-05-29 23:37:58 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2023-05-29 23:37:58 +0300
commitb9fad316a356fd223dcf29ed000de1b86e6a93d3 (patch)
tree6cf8a12dd8eb386d110bc68b7aa741f1a7e3abc7 /indra/newview/llinventorymodelbackgroundfetch.cpp
parent352ca2f881b02bd455d0f191d93737d3dc3dd52d (diff)
SL-17429 Message user when their inventory hits AIS2 limits
Diffstat (limited to 'indra/newview/llinventorymodelbackgroundfetch.cpp')
-rw-r--r--indra/newview/llinventorymodelbackgroundfetch.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp
index b0ebe83f57..0eb07523ae 100644
--- a/indra/newview/llinventorymodelbackgroundfetch.cpp
+++ b/indra/newview/llinventorymodelbackgroundfetch.cpp
@@ -34,6 +34,7 @@
#include "llinventorymodel.h"
#include "llinventoryobserver.h"
#include "llinventorypanel.h"
+#include "llnotificationsutil.h"
#include "llstartup.h"
#include "llviewercontrol.h"
#include "llviewerinventory.h"
@@ -1357,12 +1358,24 @@ void BGFolderHttpHandler::processFailure(LLCore::HttpStatus status, LLCore::Http
if(status == LLCore::HttpStatus(HTTP_FORBIDDEN))
{
- // too large, split into two, assume that this isn't the library
+ // Too large, split into two if possible
+ if (gDisconnected || LLApp::isExiting())
+ {
+ return;
+ }
+
const std::string url(gAgent.getRegionCapability("FetchInventoryDescendents2"));
+ if (url.empty())
+ {
+ LL_WARNS(LOG_INV) << "Failed to get AIS2 cap" << LL_ENDL;
+ return;
+ }
+
S32 size = mRequestSD["folders"].size();
- if (!gDisconnected && !LLApp::isExiting() && !url.empty() && size > 1)
+ if (size > 1)
{
+ // Can split, assume that this isn't the library
LLSD folders;
uuid_vec_t recursive_cats;
LLSD::array_iterator iter = mRequestSD["folders"].beginArray();
@@ -1393,6 +1406,11 @@ void BGFolderHttpHandler::processFailure(LLCore::HttpStatus status, LLCore::Http
gInventory.requestPost(false, url, request_body, handler, "Inventory Folder");
return;
}
+ else
+ {
+ // Can't split
+ LLNotificationsUtil::add("InventoryLimitReachedAIS");
+ }
}
// This was originally the request retry logic for the inventory