diff options
| author | callum <none@none> | 2011-03-04 17:06:32 -0800 | 
|---|---|---|
| committer | callum <none@none> | 2011-03-04 17:06:32 -0800 | 
| commit | 61e7c4166ffb6e16c42282d68a29365da5c62c5f (patch) | |
| tree | d15a626e56588f58f31ba4a5a1c5ecb22c53be80 /indra | |
| parent | 22c75fb3850234588da6cf043b98a450cede3c91 (diff) | |
| parent | b7433597185028c360bcab369b2efef086facda0 (diff) | |
Merge with head
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 63 | 
1 files changed, 57 insertions, 6 deletions
| diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index f775337fac..499165135a 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -59,6 +59,7 @@  #include "lluuid.h"  #include "llkeyboard.h"  #include "llmutelist.h" +#include "llpanelprofile.h"  #include "llappviewer.h"  //#include "llfirstuse.h"  #include "llwindow.h" @@ -293,6 +294,43 @@ public:  }; +class LLViewerMediaWebProfileResponder : public LLHTTPClient::Responder +{ +LOG_CLASS(LLViewerMediaWebProfileResponder); +public: +	LLViewerMediaWebProfileResponder(std::string host) +	{ +		mHost = host; +	} + +	~LLViewerMediaWebProfileResponder() +	{ +	} + +	/* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content) +	{ +		LL_WARNS("MediaAuth") << "status = " << status << ", reason = " << reason << LL_ENDL; +		LL_WARNS("MediaAuth") << content << LL_ENDL; + +		std::string cookie = content["set-cookie"].asString(); + +		LLViewerMedia::getCookieStore()->setCookiesFromHost(cookie, mHost); +	} + +	 void completedRaw( +		U32 status, +		const std::string& reason, +		const LLChannelDescriptors& channels, +		const LLIOPipe::buffer_ptr_t& buffer) +	{ +		// This is just here to disable the default behavior (attempting to parse the response as llsd). +		// We don't care about the content of the response, only the set-cookie header. +	} + +	std::string mHost; +}; + +  LLPluginCookieStore *LLViewerMedia::sCookieStore = NULL;  LLURL LLViewerMedia::sOpenIDURL;  std::string LLViewerMedia::sOpenIDCookie; @@ -1352,6 +1390,19 @@ void LLViewerMedia::setOpenIDCookie()  		// *HACK: Doing this here is nasty, find a better way.  		LLWebSharing::instance().setOpenIDCookie(sOpenIDCookie); + +		// Do a web profile get so we can store the cookie  +		LLSD headers = LLSD::emptyMap(); +		headers["Accept"] = "*/*"; +		headers["Cookie"] = sOpenIDCookie; +		headers["User-Agent"] = getCurrentUserAgent(); + +		std::string profile_url = getProfileURL(""); +		LLURL raw_profile_url( profile_url.c_str() ); + +		LLHTTPClient::get(profile_url,   +			new LLViewerMediaWebProfileResponder(raw_profile_url.getAuthority()), +			headers);  	}  } @@ -1834,12 +1885,12 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)  			media_source->ignore_ssl_cert_errors(true);  		} -		// the correct way to deal with certs it to load ours from CA.pem and append them to the ones
 -		// Qt/WebKit loads from your system location.
 -		// Note: This needs the new CA.pem file with the Equifax Secure Certificate Authority 
 -		// cert at the bottom: (MIIDIDCCAomgAwIBAgIENd70zzANBg)
 -		std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" );
 -		media_source->addCertificateFilePath( ca_path );
 +		// the correct way to deal with certs it to load ours from CA.pem and append them to the ones +		// Qt/WebKit loads from your system location. +		// Note: This needs the new CA.pem file with the Equifax Secure Certificate Authority  +		// cert at the bottom: (MIIDIDCCAomgAwIBAgIENd70zzANBg) +		std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "CA.pem" ); +		media_source->addCertificateFilePath( ca_path );  		media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); | 
