diff options
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | indra/newview/llaccountingcostmanager.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llaccountingcostmanager.h | 2 | ||||
| -rwxr-xr-x | indra/newview/llagent.cpp | 100 | ||||
| -rwxr-xr-x | indra/newview/llagent.h | 12 | ||||
| -rwxr-xr-x | indra/newview/llfacebookconnect.cpp | 10 | ||||
| -rwxr-xr-x | indra/newview/llhomelocationresponder.cpp | 108 | ||||
| -rwxr-xr-x | indra/newview/llhomelocationresponder.h | 44 | 
8 files changed, 58 insertions, 224 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 3553e3a612..bebc82e847 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -326,7 +326,6 @@ set(viewer_SOURCE_FILES      llgroupmgr.cpp      llhasheduniqueid.cpp      llhints.cpp -    llhomelocationresponder.cpp      llhttpretrypolicy.cpp      llhudeffect.cpp      llhudeffectbeam.cpp @@ -931,7 +930,6 @@ set(viewer_HEADER_FILES      llhasheduniqueid.h      llhints.h      llhttpretrypolicy.h -    llhomelocationresponder.h      llhudeffect.h      llhudeffectbeam.h      llhudeffectlookat.h diff --git a/indra/newview/llaccountingcostmanager.cpp b/indra/newview/llaccountingcostmanager.cpp index 6337fbe444..f928c84ecb 100755 --- a/indra/newview/llaccountingcostmanager.cpp +++ b/indra/newview/llaccountingcostmanager.cpp @@ -35,13 +35,9 @@  //===============================================================================  LLAccountingCostManager::LLAccountingCostManager():      mHttpRequest(), -    mHttpHeaders(), -    mHttpOptions(),      mHttpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID)  {	      mHttpRequest = LLCore::HttpRequest::ptr_t(new LLCore::HttpRequest()); -    mHttpHeaders = LLCore::HttpHeaders::ptr_t(new LLCore::HttpHeaders(), false); -    mHttpOptions = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions(), false);      //mHttpPolicy = LLCore::HttpRequest::DEFAULT_POLICY_ID;  } diff --git a/indra/newview/llaccountingcostmanager.h b/indra/newview/llaccountingcostmanager.h index f4d45d43cb..34748894e3 100755 --- a/indra/newview/llaccountingcostmanager.h +++ b/indra/newview/llaccountingcostmanager.h @@ -80,8 +80,6 @@ private:      void accountingCostCoro(LLCoros::self& self, std::string url, eSelectionType selectionType, const LLHandle<LLAccountingCostObserver> observerHandle);      LLCore::HttpRequest::ptr_t		mHttpRequest; -    LLCore::HttpHeaders::ptr_t		mHttpHeaders; -    LLCore::HttpOptions::ptr_t		mHttpOptions;      LLCore::HttpRequest::policy_t	mHttpPolicy;  };  //=============================================================================== diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index df304d66c3..230447b256 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -52,7 +52,6 @@  #include "llfloatertools.h"  #include "llgroupactions.h"  #include "llgroupmgr.h" -#include "llhomelocationresponder.h"  #include "llhudmanager.h"  #include "lljoystickbutton.h"  #include "llmorphview.h" @@ -95,7 +94,6 @@  #include "lscript_byteformat.h"  #include "stringize.h"  #include "boost/foreach.hpp" -#include "llhttpsdhandler.h"  #include "llcorehttputil.h"  using namespace LLAvatarAppearanceDefines; @@ -363,11 +361,7 @@ LLAgent::LLAgent() :  	mMaturityPreferenceNumRetries(0U),  	mLastKnownRequestMaturity(SIM_ACCESS_MIN),  	mLastKnownResponseMaturity(SIM_ACCESS_MIN), -	mHttpRequest(), -	mHttpHeaders(), -	mHttpOptions(),  	mHttpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID), -	mHttpPriority(0),  	mTeleportState(TELEPORT_NONE),  	mRegionp(NULL), @@ -470,15 +464,8 @@ void LLAgent::init()  	LLAppCoreHttp & app_core_http(LLAppViewer::instance()->getAppCoreHttp()); -	mHttpRequest = LLCore::HttpRequest::ptr_t(new LLCore::HttpRequest()); -	mHttpHeaders = LLCore::HttpHeaders::ptr_t(new LLCore::HttpHeaders(), false); -	mHttpOptions = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions(), false);  	mHttpPolicy = app_core_http.getPolicy(LLAppCoreHttp::AP_AGENT); -    // Now ensure that we get regular callbacks to poll for completion. -    mBoundListener = LLEventPumps::instance().obtain("mainloop"). -        listen(LLEventPump::inventName(), boost::bind(&LLAgent::pollHttp, this, _1)); -  	mInitialized = TRUE;  } @@ -496,10 +483,6 @@ void LLAgent::cleanup()  	{  		mTeleportFailedSlot.disconnect();  	} -    if (mBoundListener.connected()) -    { -        mBoundListener.disconnect(); -    }  }  //----------------------------------------------------------------------------- @@ -522,17 +505,6 @@ LLAgent::~LLAgent()  	mTeleportSourceSLURL = NULL;  } -//----------------------------------------------------------------------------- -// pollHttp -//  Polling done once per frame on the "mainloop" to support HTTP processing. -//----------------------------------------------------------------------------- -bool LLAgent::pollHttp(const LLSD&) -{ -    mHttpRequest->update(0L); -    return false; -} - -  // Handle any actions that need to be performed when the main app gains focus  // (such as through alt-tab).  //----------------------------------------------------------------------------- @@ -2359,27 +2331,9 @@ void LLAgent::setStartPosition( U32 location_id )      body["HomeLocation"] = homeLocation; -    // This awkward idiom warrants explanation. -    // For starters, LLSDMessage::ResponderAdapter is ONLY for testing the new -    // LLSDMessage functionality with a pre-existing LLHTTPClient::Responder. -    // In new code, define your reply/error methods on the same class as the -    // sending method, bind them to local LLEventPump objects and pass those -    // LLEventPump names in the request LLSD object. -    // When testing old code, the new LLHomeLocationResponder object -    // is referenced by an LLHTTPClient::ResponderPtr, so when the -    // ResponderAdapter is deleted, the LLHomeLocationResponder will be too. -    // We must trust that the underlying LLHTTPClient code will eventually -    // fire either the reply callback or the error callback; either will cause -    // the ResponderAdapter to delete itself. -    LLSDMessage::ResponderAdapter* -        adapter(new LLSDMessage::ResponderAdapter(new LLHomeLocationResponder())); - -    request["message"] = "HomeLocation"; -    request["payload"] = body; -    request["reply"]   = adapter->getReplyName(); -    request["error"]   = adapter->getErrorName(); - -    gAgent.getRegion()->getCapAPI().post(request); +    if (!requestPostCapability("HomeLocation", body,  +            boost::bind(&LLAgent::setStartPositionSuccess, this, _1))) +        LL_WARNS() << "Unable to post to HomeLocation capability." << LL_ENDL;      const U32 HOME_INDEX = 1;      if( HOME_INDEX == location_id ) @@ -2388,6 +2342,53 @@ void LLAgent::setStartPosition( U32 location_id )      }  } +void LLAgent::setStartPositionSuccess(const LLSD &result) +{ +    LLVector3 agent_pos; +    bool      error = true; + +    do { +        // was the call to /agent/<agent-id>/home-location successful? +        // If not, we keep error set to true +        if (!result.has("success")) +            break; + +        if (0 != strncmp("true", result["success"].asString().c_str(), 4)) +            break; + +        // did the simulator return a "justified" home location? +        // If no, we keep error set to true +        if (!result.has("HomeLocation")) +            break; + +        if ((!result["HomeLocation"].has("LocationPos")) || +                (!result["HomeLocation"]["LocationPos"].has("X")) || +                (!result["HomeLocation"]["LocationPos"].has("Y")) || +                (!result["HomeLocation"]["LocationPos"].has("Z"))) +            break; + +        agent_pos.mV[VX] = result["HomeLocation"]["LocationPos"]["X"].asInteger(); +        agent_pos.mV[VY] = result["HomeLocation"]["LocationPos"]["Y"].asInteger(); +        agent_pos.mV[VZ] = result["HomeLocation"]["LocationPos"]["Z"].asInteger(); + +        error = false; + +    } while (0); + +    if (error) +    { +        LL_WARNS() << "Error in response to home position set." << LL_ENDL; +    } +    else +    { +        LL_INFOS() << "setting home position" << LL_ENDL; + +        LLViewerRegion *viewer_region = gAgent.getRegion(); +        setHomePosRegion(viewer_region->getHandle(), agent_pos); +    } +} + +#if 1  struct HomeLocationMapper: public LLCapabilityListener::CapabilityMapper  {      // No reply message expected @@ -2414,6 +2415,7 @@ struct HomeLocationMapper: public LLCapabilityListener::CapabilityMapper  };  // Need an instance of this class so it will self-register  static HomeLocationMapper homeLocationMapper; +#endif  void LLAgent::requestStopMotion( LLMotion* motion )  { diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 745c0b063a..0ba3dea427 100755 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -62,7 +62,6 @@ class LLSLURL;  class LLPauseRequestHandle;  class LLUIColor;  class LLTeleportRequest; -class LLHttpSDHandler; @@ -234,6 +233,8 @@ public:  	void			setHomePosRegion(const U64& region_handle, const LLVector3& pos_region);  	BOOL			getHomePosGlobal(LLVector3d* pos_global);  private: +    void            setStartPositionSuccess(const LLSD &result); +  	BOOL 			mHaveHomePosition;  	U64				mHomeRegionHandle;  	LLVector3		mHomePosRegion; @@ -767,12 +768,7 @@ private:  	unsigned int                    mMaturityPreferenceNumRetries;  	U8                              mLastKnownRequestMaturity;  	U8                              mLastKnownResponseMaturity; -	LLCore::HttpRequest::ptr_t		mHttpRequest; -	LLCore::HttpHeaders::ptr_t		mHttpHeaders; -	LLCore::HttpOptions::ptr_t		mHttpOptions;  	LLCore::HttpRequest::policy_t	mHttpPolicy; -	LLCore::HttpRequest::priority_t	mHttpPriority; -    LLTempBoundListener             mBoundListener;  	bool            isMaturityPreferenceSyncedWithServer() const;  	void 			sendMaturityPreferenceToServer(U8 pPreferredMaturity); @@ -787,8 +783,6 @@ private:  	void 			handleMaturity(const LLSD &pNewValue);  	bool 			validateMaturity(const LLSD& newvalue); -    bool            pollHttp(const LLSD &); -  /**                    Access   **                                                                            ** @@ -937,8 +931,6 @@ public:  	/// HTTP using the agent's policy settings and headers.        bool requestPostCapability(const std::string &capName, LLSD &postData, httpCallback_t cbSuccess = NULL, httpCallback_t cbFailure = NULL);      bool requestGetCapability(const std::string &capName, httpCallback_t cbSuccess = NULL, httpCallback_t cbFailure = NULL); -//	LLCore::HttpHandle	requestPostCapability(const std::string &cap, const std::string &url, LLSD &postData, LLHttpSDHandler *usrhndlr = NULL); -//    LLCore::HttpHandle	requestGetCapability(const std::string &cap, const std::string &url, LLHttpSDHandler *usrhndlr = NULL);  /**                    Utility   **                                                                            ** diff --git a/indra/newview/llfacebookconnect.cpp b/indra/newview/llfacebookconnect.cpp index d1ed4e8ba4..a295910379 100755 --- a/indra/newview/llfacebookconnect.cpp +++ b/indra/newview/llfacebookconnect.cpp @@ -131,7 +131,7 @@ void LLFacebookConnect::facebookConnectCoro(LLCoros::self& self, std::string aut      LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t          httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("FacebookConnect", httpPolicy));      LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); -    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); +    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions, false);      LLSD putData;      if (!authCode.empty()) @@ -217,7 +217,7 @@ void LLFacebookConnect::facebookShareCoro(LLCoros::self& self, std::string route      LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t          httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("FacebookConnect", httpPolicy));      LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); -    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); +    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions, false);      httpOpts->setWantHeaders(true); @@ -239,8 +239,8 @@ void LLFacebookConnect::facebookShareImageCoro(LLCoros::self& self, std::string      LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t          httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("FacebookConnect", httpPolicy));      LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); -    LLCore::HttpHeaders::ptr_t httpHeaders(new LLCore::HttpHeaders); -    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); +    LLCore::HttpHeaders::ptr_t httpHeaders(new LLCore::HttpHeaders, false); +    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions, false);      httpOpts->setWantHeaders(true); @@ -386,7 +386,7 @@ void LLFacebookConnect::facebookConnectInfoCoro(LLCoros::self& self)      LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t          httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("FacebookConnect", httpPolicy));      LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest); -    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions); +    LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions, false);      httpOpts->setWantHeaders(true); diff --git a/indra/newview/llhomelocationresponder.cpp b/indra/newview/llhomelocationresponder.cpp deleted file mode 100755 index d0492bcdb4..0000000000 --- a/indra/newview/llhomelocationresponder.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/**  - * @file llhomelocationresponder.cpp - * @author Meadhbh Hamrick - * @brief Processes responses to the HomeLocation CapReq - * - * $LicenseInfo:firstyear=2008&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -/* File Inclusions */ -#include "llviewerprecompiledheaders.h" - -#include "llhomelocationresponder.h" -#include "llsdutil.h" -#include "llagent.h" -#include "llviewerregion.h" - -void LLHomeLocationResponder::httpSuccess() -{ -  const LLSD& content = getContent(); -  LLVector3 agent_pos; -  bool      error = true; - -  do { - -    // was the call to /agent/<agent-id>/home-location successful? -    // If not, we keep error set to true -    if( ! content.has("success") ) -    { -      break; -    } - -    if( 0 != strncmp("true", content["success"].asString().c_str(), 4 ) ) -    { -      break; -    } - -    // did the simulator return a "justified" home location? -    // If no, we keep error set to true -    if( ! content.has( "HomeLocation" ) ) -    { -      break; -    } - -    if( ! content["HomeLocation"].has("LocationPos") ) -    { -      break; -    } - -    if( ! content["HomeLocation"]["LocationPos"].has("X") ) -    { -      break; -    } - -    agent_pos.mV[VX] = content["HomeLocation"]["LocationPos"]["X"].asInteger(); - -    if( ! content["HomeLocation"]["LocationPos"].has("Y") ) -    { -      break; -    } - -    agent_pos.mV[VY] = content["HomeLocation"]["LocationPos"]["Y"].asInteger(); - -    if( ! content["HomeLocation"]["LocationPos"].has("Z") ) -    { -      break; -    } - -    agent_pos.mV[VZ] = content["HomeLocation"]["LocationPos"]["Z"].asInteger(); - -    error = false; -  } while( 0 ); - -  if( error ) -  { -    failureResult(HTTP_INTERNAL_ERROR, "Invalid server response content", content); -  } -  else -  { -    LL_INFOS() << "setting home position" << LL_ENDL; - -    LLViewerRegion *viewer_region = gAgent.getRegion(); -    gAgent.setHomePosRegion( viewer_region->getHandle(), agent_pos ); -  } -} - -void LLHomeLocationResponder::httpFailure() -{ -  LL_WARNS() << dumpResponse() << LL_ENDL; -} diff --git a/indra/newview/llhomelocationresponder.h b/indra/newview/llhomelocationresponder.h deleted file mode 100755 index adc6c8cb58..0000000000 --- a/indra/newview/llhomelocationresponder.h +++ /dev/null @@ -1,44 +0,0 @@ -/**  - * @file llhomelocationresponder.h - * @author Meadhbh Hamrick - * @brief Processes responses to the HomeLocation CapReq - * - * $LicenseInfo:firstyear=2008&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ -  - /* Macro Definitions */ -#ifndef LL_LLHOMELOCATIONRESPONDER_H -#define LL_LLHOMELOCATIONRESPONDER_H - -/* File Inclusions */ -#include "llhttpclient.h" - -/* Typedef, Enum, Class, Struct, etc. */ -class LLHomeLocationResponder : public LLHTTPClient::Responder -{ -	LOG_CLASS(LLHomeLocationResponder); -private: -	/* virtual */ void httpSuccess(); -	/* virtual */ void httpFailure(); -}; - -#endif | 
