summaryrefslogtreecommitdiff
path: root/indra/newview/llslurl.cpp
diff options
context:
space:
mode:
authorLynx Linden <lynx@lindenlab.com>2010-08-26 09:27:22 +0100
committerLynx Linden <lynx@lindenlab.com>2010-08-26 09:27:22 +0100
commitd18b3d2aff6f9f6c7c2ac1a26f5ac8e94fc8d9a8 (patch)
tree282c8fb647b366f9b1aab33796b7701ea1758d1b /indra/newview/llslurl.cpp
parentc7ac420978d145790440829d6f2f54745ff38fbe (diff)
EXT-7901 FIXED: Follow up fix to remove short-term hack.
As advertized, I have removed the short-term hack that I put in place to make release note URLs work. I have now put in place a more general and correct solution. The key observeration from Roxie is that SLE SLurls should have the same hostname as the grid host. So now, URLs like http://google.com/app are no longer categorized as a SLurl and produce errors when you click on them.
Diffstat (limited to 'indra/newview/llslurl.cpp')
-rw-r--r--indra/newview/llslurl.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/indra/newview/llslurl.cpp b/indra/newview/llslurl.cpp
index 0308f5e632..4cf1df1655 100644
--- a/indra/newview/llslurl.cpp
+++ b/indra/newview/llslurl.cpp
@@ -44,7 +44,6 @@ const char* LLSLURL::SLURL_COM = "slurl.com";
// version is required also.
const char* LLSLURL::WWW_SLURL_COM = "www.slurl.com";
-const char* LLSLURL::SECONDLIFE_COM = "secondlife.com";
const char* LLSLURL::MAPS_SECONDLIFE_COM = "maps.secondlife.com";
const char* LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME = "x-grid-location-info";
const char* LLSLURL::SLURL_APP_PATH = "app";
@@ -183,15 +182,6 @@ LLSLURL::LLSLURL(const std::string& slurl)
(slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) ||
(slurl_uri.scheme() == LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME))
{
- // *HACK: ignore http://secondlife.com/ URLs so that we can use
- // http://secondlife.com/app/ redirect URLs
- // This is only necessary while the server returns Release Note
- // urls using this format rather that pointing to the wiki
- if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME ||
- slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) &&
- slurl_uri.hostName() == LLSLURL::SECONDLIFE_COM)
- return;
-
// We're dealing with either a Standalone style slurl or slurl.com slurl
if ((slurl_uri.hostName() == LLSLURL::SLURL_COM) ||
(slurl_uri.hostName() == LLSLURL::WWW_SLURL_COM) ||
@@ -202,6 +192,17 @@ LLSLURL::LLSLURL(const std::string& slurl)
}
else
{
+ // Don't try to match any old http://<host>/ URL as a SLurl.
+ // SLE SLurls will have the grid hostname in the URL, so only
+ // match http URLs if the hostname matches the grid hostname
+ // (or its a slurl.com or maps.secondlife.com URL).
+ if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME ||
+ slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) &&
+ slurl_uri.hostName() != LLGridManager::getInstance()->getGrid())
+ {
+ return;
+ }
+
// As it's a Standalone grid/open, we will always have a hostname, as Standalone/open style
// urls are properly formed, unlike the stinky maingrid style
mGrid = slurl_uri.hostName();