summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloateroutbox.cpp1
-rw-r--r--indra/newview/llmarketplacefunctions.cpp67
-rw-r--r--indra/newview/llmarketplacefunctions.h5
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml7
4 files changed, 45 insertions, 35 deletions
diff --git a/indra/newview/llfloateroutbox.cpp b/indra/newview/llfloateroutbox.cpp
index 28589f5e9a..130c26acdc 100644
--- a/indra/newview/llfloateroutbox.cpp
+++ b/indra/newview/llfloateroutbox.cpp
@@ -438,7 +438,6 @@ void LLFloaterOutbox::importReportResults(U32 status, const LLSD& content)
LLSD subs;
subs["[ERROR_CODE]"] = status_string;
- //llassert(status == MarketplaceErrorCodes::IMPORT_JOB_FAILED);
LLNotificationsUtil::add("OutboxImportFailed", subs);
}
diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp
index ea6634a39e..84cbe3cac2 100644
--- a/indra/newview/llmarketplacefunctions.cpp
+++ b/indra/newview/llmarketplacefunctions.cpp
@@ -133,6 +133,17 @@ namespace LLMarketplaceImport
llinfos << " SLM POST content: " << content.asString() << llendl;
}
+ if ((status == MarketplaceErrorCodes::IMPORT_REDIRECT) ||
+ (status == MarketplaceErrorCodes::IMPORT_AUTHENTICATION_ERROR))
+ {
+ if (gSavedSettings.getBOOL("InventoryOutboxLogging"))
+ {
+ llinfos << " SLM POST clearing marketplace cookie due to authentication failure" << llendl;
+ }
+
+ sMarketplaceCookie.clear();
+ }
+
sImportInProgress = (status == MarketplaceErrorCodes::IMPORT_DONE);
sImportPostPending = false;
sImportResultStatus = status;
@@ -330,16 +341,6 @@ LLMarketplaceInventoryImporter::LLMarketplaceInventoryImporter()
{
}
-void LLMarketplaceInventoryImporter::initialize()
-{
- llassert(!mInitialized);
-
- if (!LLMarketplaceImport::hasSessionCookie())
- {
- LLMarketplaceImport::establishMarketplaceSessionCookie();
- }
-}
-
boost::signals2::connection LLMarketplaceInventoryImporter::setInitializationErrorCallback(const status_report_signal_t::slot_type& cb)
{
if (mErrorInitSignal == NULL)
@@ -370,17 +371,32 @@ boost::signals2::connection LLMarketplaceInventoryImporter::setStatusReportCallb
return mStatusReportSignal->connect(cb);
}
+void LLMarketplaceInventoryImporter::initialize()
+{
+ llassert(!mInitialized);
+
+ if (!LLMarketplaceImport::hasSessionCookie())
+ {
+ LLMarketplaceImport::establishMarketplaceSessionCookie();
+ }
+}
+
+void LLMarketplaceInventoryImporter::reinitializeAndTriggerImport()
+{
+ mInitialized = false;
+
+ initialize();
+
+ mAutoTriggerImport = true;
+}
+
bool LLMarketplaceInventoryImporter::triggerImport()
{
const bool import_triggered = LLMarketplaceImport::triggerImport();
if (!import_triggered)
{
- mInitialized = false;
-
- initialize();
-
- mAutoTriggerImport = true;
+ reinitializeAndTriggerImport();
}
return import_triggered;
@@ -396,23 +412,14 @@ void LLMarketplaceInventoryImporter::updateImport()
if (!polling_status)
{
- mInitialized = false;
-
- initialize();
-
- mAutoTriggerImport = true;
+ reinitializeAndTriggerImport();
}
}
if (mImportInProgress != in_progress)
{
mImportInProgress = in_progress;
-
- if (mStatusChangedSignal)
- {
- (*mStatusChangedSignal)(mImportInProgress);
- }
-
+
// If we are no longer in progress
if (!mImportInProgress)
{
@@ -436,7 +443,7 @@ void LLMarketplaceInventoryImporter::updateImport()
{
mAutoTriggerImport = false;
- triggerImport();
+ mImportInProgress = triggerImport();
}
}
else if (mErrorInitSignal)
@@ -445,6 +452,12 @@ void LLMarketplaceInventoryImporter::updateImport()
}
}
}
+
+ // Make sure we trigger the status change with the final state (in case of auto trigger after initialize)
+ if (mStatusChangedSignal)
+ {
+ (*mStatusChangedSignal)(mImportInProgress);
+ }
}
}
diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h
index b2f6cb7521..78df86ef3e 100644
--- a/indra/newview/llmarketplacefunctions.h
+++ b/indra/newview/llmarketplacefunctions.h
@@ -46,6 +46,7 @@ namespace MarketplaceErrorCodes
{
IMPORT_DONE = 200,
IMPORT_PROCESSING = 202,
+ IMPORT_REDIRECT = 302,
IMPORT_AUTHENTICATION_ERROR = 401,
IMPORT_DONE_WITH_ERRORS = 409,
IMPORT_JOB_FAILED = 410,
@@ -61,8 +62,6 @@ public:
LLMarketplaceInventoryImporter();
- void initialize();
-
typedef boost::signals2::signal<void (bool)> status_changed_signal_t;
typedef boost::signals2::signal<void (U32, const LLSD&)> status_report_signal_t;
@@ -70,10 +69,12 @@ public:
boost::signals2::connection setStatusChangedCallback(const status_changed_signal_t::slot_type& cb);
boost::signals2::connection setStatusReportCallback(const status_report_signal_t::slot_type& cb);
+ void initialize();
bool triggerImport();
bool isImportInProgress() const { return mImportInProgress; }
protected:
+ void reinitializeAndTriggerImport();
void updateImport();
private:
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 2269703cb6..61346bf3d6 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -230,8 +230,9 @@ All folders were successfully sent to the Marketplace.
type="outbox">
Some folders did not transfer
-Errors occurred when some folders were sent to the Marketplace. Those folders are still in your Merchant Outbox. See the error log for more information.
+Errors occurred when some folders were sent to the Marketplace. Those folders are still in your Merchant Outbox.
+See the error log for more information.
<usetemplate
name="okbutton"
yestext="OK"/>
@@ -245,8 +246,6 @@ Transfer failed
No folders were sent to the Marketplace because of a system or network error. Try again later.
-Error [ERROR_CODE]
-
<usetemplate
name="okbutton"
yestext="OK"/>
@@ -260,8 +259,6 @@ Marketplace initialization failed
Initialization with the Marketplace failed because of a system or network error. Try again later.
-Error [ERROR_CODE]
-
<usetemplate
name="okbutton"
yestext="OK"/>