diff options
Diffstat (limited to 'indra/llplugin')
| -rwxr-xr-x | indra/llplugin/llplugincookiestore.cpp | 28 | ||||
| -rwxr-xr-x | indra/llplugin/llplugincookiestore.h | 3 | 
2 files changed, 31 insertions, 0 deletions
| diff --git a/indra/llplugin/llplugincookiestore.cpp b/indra/llplugin/llplugincookiestore.cpp index 82017ab3fa..9f4d65e723 100755 --- a/indra/llplugin/llplugincookiestore.cpp +++ b/indra/llplugin/llplugincookiestore.cpp @@ -87,6 +87,16 @@ std::string LLPluginCookieStore::Cookie::getKey() const  	return result;  } +std::string LLPluginCookieStore::Cookie::getDomain() const +{ +	std::string result; +	if(mDomainEnd > mDomainStart) +	{ +		result += mCookie.substr(mDomainStart, mDomainEnd - mDomainStart); +	} +	return result; +} +  bool LLPluginCookieStore::Cookie::parse(const std::string &host)  {  	bool first_field = true; @@ -662,3 +672,21 @@ void LLPluginCookieStore::removeCookie(const std::string &key)  	}  } +void LLPluginCookieStore::removeCookiesByDomain(const std::string &domain) +{ +	cookie_map_t::iterator iter = mCookies.begin(); +	while(iter != mCookies.end()) +	{  +		if(iter->second->getDomain() == domain) +		{ +            cookie_map_t::iterator doErase = iter; +            iter++; +			delete doErase->second; +			mCookies.erase(doErase); +		} +        else +        { +            iter++; +        } +	} +} diff --git a/indra/llplugin/llplugincookiestore.h b/indra/llplugin/llplugincookiestore.h index 91289d38a5..a2fdeab647 100755 --- a/indra/llplugin/llplugincookiestore.h +++ b/indra/llplugin/llplugincookiestore.h @@ -67,6 +67,8 @@ public:  	// quote or unquote a string as per the definition of 'quoted-string' in rfc2616  	static std::string quoteString(const std::string &s);  	static std::string unquoteString(const std::string &s); + +	void removeCookiesByDomain(const std::string &domain);  private: @@ -79,6 +81,7 @@ private:  		// Construct a string from the cookie that uniquely represents it, to be used as a key in a std::map.  		std::string getKey() const; +		std::string getDomain() const;  		const std::string &getCookie() const { return mCookie; };  		bool isSessionCookie() const { return mDate.isNull(); }; | 
