diff options
| -rw-r--r-- | indra/newview/llfloateroutbox.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llmarketplacefunctions.cpp | 67 | ||||
| -rw-r--r-- | indra/newview/llmarketplacefunctions.h | 5 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 7 | 
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"/>  | 
