From e34a49929252a2e19e2ce2ad4eb8c88f054ade7a Mon Sep 17 00:00:00 2001 From: Cinders Date: Mon, 8 Apr 2013 00:13:50 -0600 Subject: [PATCH] Clean up slurl code in prep for FIRE-9687 fix --- indra/newview/fsslurl.cpp | 390 +++++++++++++++--------------- indra/newview/llurldispatcher.cpp | 26 +- 2 files changed, 196 insertions(+), 220 deletions(-) diff --git a/indra/newview/fsslurl.cpp b/indra/newview/fsslurl.cpp index 7d750397db..25a6e52e38 100644 --- a/indra/newview/fsslurl.cpp +++ b/indra/newview/fsslurl.cpp @@ -1,4 +1,4 @@ -/** +/** * @file fsslurl.cpp (was llsimurlstring.cpp) * @brief Handles "SLURL fragments" like Ahern/123/45 for * startup processing, login screen, prefs, etc. @@ -12,16 +12,16 @@ * 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$ */ @@ -54,9 +54,9 @@ const char* LLSLURL::WWW_SLURL_COM = "www.slurl.com"; const char* LLSLURL::MAPS_SECONDLIFE_COM = "maps.secondlife.com"; // -const char* LLSLURL::SLURL_COM = "slurl.com"; +const char* LLSLURL::SLURL_COM = "slurl.com"; const char* LLSLURL::SLURL_APP_PATH = "app"; -const char* LLSLURL::SLURL_SECONDLIFE_PATH = "secondlife"; +const char* LLSLURL::SLURL_SECONDLIFE_PATH = "secondlife"; const char* LLSLURL::SLURL_REGION_PATH = "region"; const char* LLSLURL::SIM_LOCATION_HOME = "home"; const char* LLSLURL::SIM_LOCATION_LAST = "last"; @@ -95,11 +95,11 @@ LLSLURL::LLSLURL(const std::string& slurl) // the slurl that was passed in might have a prepended /, or not. So, // we strip off the prepended '/' so we don't end up with http://slurl.com/secondlife//// // or some such. - + if(slurl[0] == '/') - { + { fixed_slurl += slurl.substr(1); - } + } // FIRE-6898 - Explicitly ignore data URI's else if(slurl.substr(0,4) == "data") { @@ -107,18 +107,18 @@ LLSLURL::LLSLURL(const std::string& slurl) } // else - { + { fixed_slurl += slurl; - } + } // We then load the slurl into a LLURI form slurl_uri = LLURI(fixed_slurl); } - else if (std::string::npos == slurl.find("|!!")) + else if (slurl.find("|!!") == std::string::npos && slurl.find("hop://") == std::string::npos) { // as we did have a scheme, implying a URI style slurl, we // simply parse it as a URI slurl_uri = LLURI(slurl); - LL_DEBUGS("SLURL") << "standard slurl" << LL_ENDL; + LL_DEBUGS("SLURL") << "standard slurl " << slurl<< LL_ENDL; } else { @@ -127,25 +127,27 @@ LLSLURL::LLSLURL(const std::string& slurl) std::string hop = slurl; std::string match = "|!!"; size_t pos = hop.find(match); - hop.erase( 0,pos+match.length()); + if (pos != std::string::npos) + hop.erase( 0,pos+match.length()); boost::replace_all(hop, "|", ":"); boost::replace_all(hop, "!", "/"); boost::replace_first(hop, "+", "/"); boost::replace_all(hop, "+", " "); - hop = "hop://" + hop; + if (hop.find("hop://") == std::string::npos) + hop = "hop://" + hop; slurl_uri = LLURI(hop); LL_DEBUGS("SLURL") << "hypergrid slurl " << hop </secondlife//// // where if grid is empty, it specifies Agni - + // An app style slurl for maingrid can be // secondlife:///app/ // where an empty grid implies Agni - - // we'll start by checking the top of the 'path' which will be + + // we'll start by checking the top of the 'path' which will be // either 'app', 'secondlife', or . LL_DEBUGS("SLURL") << "slurl_uri.hostNameAndPort(): " << slurl_uri.hostNameAndPort() << LL_ENDL; LL_DEBUGS("SLURL") << "path_array[0]: " << path_array[0].asString() << LL_ENDL; if ((path_array[0].asString() == LLSLURL::SLURL_SECONDLIFE_PATH) || - (path_array[0].asString() == LLSLURL::SLURL_APP_PATH)) - { + (path_array[0].asString() == LLSLURL::SLURL_APP_PATH)) + { // it's in the form secondlife:///(app|secondlife) // so parse the grid name to derive the grid ID if (!slurl_uri.hostNameAndPort().empty()) @@ -185,16 +187,15 @@ LLSLURL::LLSLURL(const std::string& slurl) mGrid = LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostNameAndPort()); if (mGrid.empty()) - mGrid = - LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostName()); + mGrid = LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostName()); if (mGrid.empty()) mGrid = default_grid; } else if(path_array[0].asString() == LLSLURL::SLURL_SECONDLIFE_PATH) { LL_DEBUGS("SLURL") << "secondlife:///secondlife/" << LL_ENDL; - // If the slurl is in the form secondlife:///secondlife/ form, - // then we are in fact on maingrid. + // If the slurl is in the form secondlife:///secondlife/ form, + // then we are in fact on maingrid. mGrid = default_grid; } else if(path_array[0].asString() == LLSLURL::SLURL_APP_PATH) @@ -226,9 +227,9 @@ LLSLURL::LLSLURL(const std::string& slurl) mType = APP; } path_array.erase(0); - } + } else - { + { LL_DEBUGS("SLURL") << "secondlife://" << LL_ENDL; // it wasn't a /secondlife/ or /app/, so it must be secondlife:// // therefore the hostname will be the region name, and it's a location type @@ -240,18 +241,17 @@ LLSLURL::LLSLURL(const std::string& slurl) // 'normalize' it so the region name is in fact the head of the path_array path_array.insert(0, slurl_uri.hostNameAndPort()); - } + } } - else if( (slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME) - || (slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) - || (slurl_uri.scheme() == LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME) - || (slurl_uri.scheme() == LLSLURL::HOP_SCHEME ) // - ) + else if((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME) + || (slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) + || (slurl_uri.scheme() == LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME) + || (slurl_uri.scheme() == LLSLURL::HOP_SCHEME)) { - // 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) || - (slurl_uri.hostName() == LLSLURL::MAPS_SECONDLIFE_COM)) + // 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) || + (slurl_uri.hostName() == LLSLURL::MAPS_SECONDLIFE_COM)) { LL_DEBUGS("SLURL") << "slurl style slurl.com" << LL_ENDL; if (slurl_uri.hostName() == LLSLURL::MAPS_SECONDLIFE_COM) @@ -259,7 +259,7 @@ LLSLURL::LLSLURL(const std::string& slurl) else mGrid = default_grid; } - else + else { LL_DEBUGS("SLURL") << "slurl style Standalone" << LL_ENDL; // Don't try to match any old http:/// URL as a SLurl. @@ -269,30 +269,23 @@ LLSLURL::LLSLURL(const std::string& slurl) std::string probe_grid; std::string hyper = slurl_uri.hostNameAndPort(); - std::string hyper_trimmed = LLGridManager::getInstance() - ->trimHypergrid(hyper); + std::string hyper_trimmed = LLGridManager::getInstance()->trimHypergrid(hyper); if (hyper != hyper_trimmed) { mHypergrid = true; path_array.insert(0,hyper); } - probe_grid = LLGridManager::getInstance() - ->getGridByProbing(hyper); + probe_grid = LLGridManager::getInstance()->getGridByProbing(hyper); if (probe_grid.empty()) { - probe_grid = LLGridManager::getInstance() - ->getGridByProbing(slurl_uri.hostName()); + probe_grid = LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostName()); } - LL_DEBUGS("SLURL") << "Probing result: " - << probe_grid << LL_ENDL; - LL_DEBUGS("SLURL") << "slurl_uri.hostNameAndPort(): " - << slurl_uri.hostNameAndPort() << LL_ENDL; + LL_DEBUGS("SLURL") << "Probing result: " << probe_grid << LL_ENDL; + LL_DEBUGS("SLURL") << "slurl_uri.hostNameAndPort(): " << slurl_uri.hostNameAndPort() << LL_ENDL; - if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME || - slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) && - slurl_uri.hostNameAndPort() != probe_grid) + if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME || slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) && slurl_uri.hostNameAndPort() != probe_grid) { LL_DEBUGS("SLURL") << "Don't try to match any old http:/// URL as a SLurl" << LL_ENDL; @@ -308,25 +301,23 @@ LLSLURL::LLSLURL(const std::string& slurl) else { mGrid = probe_grid; - mHypergrid = LLGridManager::getInstance() - ->isHyperGrid(probe_grid); + mHypergrid = LLGridManager::getInstance()->isHyperGrid(probe_grid); } } - if (path_array.size() == 0) + if (path_array.size() == 0) { - LL_DEBUGS("SLURL") << "its a broken slurl" << LL_ENDL; + LL_DEBUGS("SLURL") << "It's a broken slurl" << LL_ENDL; // um, we need a path... return; } - + // we need to normalize the urls so // the path portion starts with the 'command' that we want to do - // it can either be region or app. - if ((path_array[0].asString() == LLSLURL::SLURL_REGION_PATH) || - (path_array[0].asString() == LLSLURL::SLURL_SECONDLIFE_PATH)) + // it can either be region or app. + if ((path_array[0].asString() == LLSLURL::SLURL_REGION_PATH) || (path_array[0].asString() == LLSLURL::SLURL_SECONDLIFE_PATH)) { - LL_DEBUGS("SLURL") << "its a location slurl" << LL_ENDL; + LL_DEBUGS("SLURL") << "It's a location slurl" << LL_ENDL; // strip off 'region' or 'secondlife' path_array.erase(0); // it's a location @@ -334,52 +325,51 @@ LLSLURL::LLSLURL(const std::string& slurl) } else if (path_array[0].asString() == LLSLURL::SLURL_APP_PATH) { - LL_DEBUGS("SLURL") << "its an app slurl" << LL_ENDL; + LL_DEBUGS("SLURL") << "It's an app slurl" << LL_ENDL; mType = APP; if (mGrid.empty()) mGrid = default_grid; path_array.erase(0); - // leave app appended. + // leave app appended. } // else if ( slurl_uri.scheme() == LLSLURL::HOP_SCHEME) { - LL_DEBUGS("SLURL") << "its a location hop" << LL_ENDL; + LL_DEBUGS("SLURL") << "It's a location hop" << LL_ENDL; mType = LOCATION; } // else { - LL_DEBUGS("SLURL") << "not a valid https/http/x-grid-location-info slurl " - << slurl << LL_ENDL; + LL_DEBUGS("SLURL") << "Not a valid https/http/x-grid-location-info slurl " << slurl << LL_ENDL; // not a valid https/http/x-grid-location-info slurl, so it'll likely just be a URL return; } } else { - // invalid scheme, so bail - LL_DEBUGS("SLURL")<< "invalid scheme" << LL_ENDL; - return; + // invalid scheme, so bail + LL_DEBUGS("SLURL")<< "Invalid scheme" << LL_ENDL; + return; } - - + + if(path_array.size() == 0) { LL_DEBUGS("SLURL") << "path_array.size() == 0" << LL_ENDL; // we gotta have some stuff after the specifier as to whether it's a region or command return; } - + // now that we know whether it's an app slurl or a location slurl, // parse the slurl into the proper data structures. if(mType == APP) - { - // grab the app command type and strip it (could be a command to jump somewhere, + { + // grab the app command type and strip it (could be a command to jump somewhere, // or whatever ) mAppCmd = path_array[0].asString(); path_array.erase(0); - + // Grab the parameters mAppPath = path_array; @@ -390,12 +380,12 @@ LLSLURL::LLSLURL(const std::string& slurl) } else if(mType == LOCATION) { - // at this point, head of the path array should be [ , , , ] where x, y and z + // at this point, head of the path array should be [ , , , ] where x, y and z // are collectively optional // are optional mRegion = LLURI::unescape(path_array[0].asString()); path_array.erase(0); - + LL_DEBUGS("SLURL") << "mRegion: " << mRegion << LL_ENDL; // parse the x, y, z @@ -403,17 +393,17 @@ LLSLURL::LLSLURL(const std::string& slurl) { mPosition = LLVector3(path_array); // AW: the simulator should care of this -// if((F32(mPosition[VX]) < 0.f) || +// if((F32(mPosition[VX]) < 0.f) || // (mPosition[VX] > REGION_WIDTH_METERS) || -// (F32(mPosition[VY]) < 0.f) || +// (F32(mPosition[VY]) < 0.f) || // (mPosition[VY] > REGION_WIDTH_METERS) || -// (F32(mPosition[VZ]) < 0.f) || +// (F32(mPosition[VZ]) < 0.f) || // (mPosition[VZ] > LLWorld::getInstance()->getRegionMaxHeight())) // { // mType = INVALID; // return; // } - + } else { @@ -426,11 +416,8 @@ LLSLURL::LLSLURL(const std::string& slurl) } } - // Create a slurl for the middle of the region -LLSLURL::LLSLURL(const std::string& grid, - const std::string& region, - bool hyper) +LLSLURL::LLSLURL(const std::string& grid, const std::string& region, bool hyper) : mHypergrid(hyper) { mGrid = grid; @@ -439,14 +426,9 @@ LLSLURL::LLSLURL(const std::string& grid, mPosition = LLVector3((F64)REGION_WIDTH_METERS/2, (F64)REGION_WIDTH_METERS/2, 0); } - - // create a slurl given the position. The position will be modded with the region // width handling global positions as well -LLSLURL::LLSLURL(const std::string& grid, - const std::string& region, - const LLVector3& position, - bool hyper) +LLSLURL::LLSLURL(const std::string& grid, const std::string& region, const LLVector3& position, bool hyper) : mHypergrid(hyper) { mGrid = grid; @@ -471,22 +453,15 @@ LLSLURL::LLSLURL(const std::string& grid, // } - // create a simstring -LLSLURL::LLSLURL(const std::string& region, - const LLVector3& position, - bool hyper) +LLSLURL::LLSLURL(const std::string& region, const LLVector3& position, bool hyper) : mHypergrid(hyper) { - *this = LLSLURL(LLGridManager::getInstance()->getGrid(), - region, position); + *this = LLSLURL(LLGridManager::getInstance()->getGrid(), region, position); } // create a slurl from a global position -LLSLURL::LLSLURL(const std::string& grid, - const std::string& region, - const LLVector3d& global_position, - bool hyper) +LLSLURL::LLSLURL(const std::string& grid, const std::string& region, const LLVector3d& global_position, bool hyper) : mHypergrid(hyper) { // Aurora-sim var region teleports @@ -498,28 +473,25 @@ LLSLURL::LLSLURL(const std::string& grid, S32 y = llround( (F32)fmod( (F32)global_position.mdV[VY], (F32)REGION_WIDTH_METERS ) ); S32 z = llround( (F32)global_position.mdV[VZ] ); - *this = LLSLURL(grid, region, LLVector3(x, y, z)); + *this = LLSLURL(grid, region, LLVector3(x, y, z)); // } // create a slurl from a global position -LLSLURL::LLSLURL(const std::string& region, - const LLVector3d& global_position, - bool hyper) +LLSLURL::LLSLURL(const std::string& region, const LLVector3d& global_position, bool hyper) : mHypergrid(hyper) { - *this = LLSLURL(LLGridManager::getInstance()->getGrid(), - region, global_position); + *this = LLSLURL(LLGridManager::getInstance()->getGrid(), region, global_position); } LLSLURL::LLSLURL(const std::string& command, const LLUUID&id, const std::string& verb) : mHypergrid(false) { - mType = APP; - mAppCmd = command; - mAppPath = LLSD::emptyArray(); - mAppPath.append(LLSD(id)); - mAppPath.append(LLSD(verb)); + mType = APP; + mAppCmd = command; + mAppPath = LLSD::emptyArray(); + mAppPath.append(LLSD(id)); + mAppPath.append(LLSD(verb)); } // @@ -528,7 +500,7 @@ LLSLURL::LLSLURL(const LLSD& path_array, bool from_app) { if (path_array.isArray() && path_array.size() > 0) { - std::string query="hop://"; + std::string query="hop://"; for(int i=0; path_array.size()>i; i++) { query += path_array[i].asString() + "/"; @@ -555,73 +527,82 @@ std::string LLSLURL::getSLURLString() const { switch(mType) { - case HOME_LOCATION: - return SIM_LOCATION_HOME; - case LAST_LOCATION: - return SIM_LOCATION_LAST; - case LOCATION: - { - // lookup the grid - S32 x = llround( (F32)mPosition[VX] ); - S32 y = llround( (F32)mPosition[VY] ); - S32 z = llround( (F32)mPosition[VZ] ); - std::string ret = LLGridManager::getInstance()->getSLURLBase(mGrid); -// ret.append(LLURI::escape(mRegion)); + case HOME_LOCATION: + return SIM_LOCATION_HOME; + case LAST_LOCATION: + return SIM_LOCATION_LAST; + case LOCATION: + { + // lookup the grid + S32 x = llround( (F32)mPosition[VX] ); + S32 y = llround( (F32)mPosition[VY] ); + S32 z = llround( (F32)mPosition[VZ] ); + std::string ret = LLGridManager::getInstance()->getSLURLBase(mGrid); + // + std::string region = mRegion; + std::size_t pos; + pos = region.find(mGrid); + if (pos != std::string::npos) + { + region.erase(pos, pos + mGrid.length() + 1); + } + // +// ret.append(LLURI::escape(mRegion)); // ret.append(llformat("/%d/%d/%d",x,y,z)); // [RLVa:KB] - Checked: 2010-04-05 (RLVa-1.2.0d) | Added: RLVa-1.2.0d - ret.append( ( ((!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) || (!RlvUtil::isNearbyRegion(mRegion))) - ? (LLURI::escape(mRegion) + llformat("/%d/%d/%d",x,y,z)) : RlvStrings::getString(RLV_STRING_HIDDEN_REGION) )); + ret.append( ( ((!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) || (!RlvUtil::isNearbyRegion(region))) + ? (LLURI::escape(region) + llformat("/%d/%d/%d",x,y,z)) : RlvStrings::getString(RLV_STRING_HIDDEN_REGION) )); // [/RLVa:KB] - LL_DEBUGS("SLURL") << "Location: " << ret << LL_ENDL; - return ret; + LL_DEBUGS("SLURL") << "Location: " << ret << LL_ENDL; + return ret; - } + } - case APP: + case APP: + { + std::ostringstream app_url; + app_url << LLGridManager::getInstance()->getAppSLURLBase() << "/" << mAppCmd; + for(LLSD::array_const_iterator i = mAppPath.beginArray(); + i != mAppPath.endArray(); + i++) { - std::ostringstream app_url; - app_url << LLGridManager::getInstance()->getAppSLURLBase() << "/" << mAppCmd; - for(LLSD::array_const_iterator i = mAppPath.beginArray(); - i != mAppPath.endArray(); - i++) - { - app_url << "/" << i->asString(); - } - if(mAppQuery.length() > 0) - { - app_url << "?" << mAppQuery; - } - return app_url.str(); - } - default: - LL_WARNS("AppInit") << "Unexpected SLURL type for SLURL string" << (int)mType << LL_ENDL; - return std::string(); + app_url << "/" << i->asString(); + } + if(mAppQuery.length() > 0) + { + app_url << "?" << mAppQuery; + } + return app_url.str(); + } + default: + LL_WARNS("AppInit") << "Unexpected SLURL type for SLURL string" << (int)mType << LL_ENDL; + return std::string(); } } std::string LLSLURL::getLoginString() const { - + std::stringstream unescaped_start; switch(mType) { - case LOCATION: - unescaped_start << "uri:" - << mRegion << "&" - << llround(mPosition[0]) << "&" - << llround(mPosition[1]) << "&" - << llround(mPosition[2]); - break; - case HOME_LOCATION: - unescaped_start << "home"; - break; - case LAST_LOCATION: - unescaped_start << "last"; - break; - default: - LL_WARNS("AppInit") << "Unexpected SLURL type for login string" << (int)mType << LL_ENDL; - break; + case LOCATION: + unescaped_start << "uri:" + << mRegion << "&" + << llround(mPosition[0]) << "&" + << llround(mPosition[1]) << "&" + << llround(mPosition[2]); + break; + case HOME_LOCATION: + unescaped_start << "home"; + break; + case LAST_LOCATION: + unescaped_start << "last"; + break; + default: + LL_WARNS("AppInit") << "Unexpected SLURL type for login string" << (int)mType << LL_ENDL; + break; } return xml_escape_string(unescaped_start.str()); } @@ -631,18 +612,18 @@ bool LLSLURL::operator==(const LLSLURL& rhs) if(rhs.mType != mType) return false; switch(mType) { - case LOCATION: - return ((mGrid == rhs.mGrid) && - (mRegion == rhs.mRegion) && - (mPosition == rhs.mPosition)); - case APP: - return getSLURLString() == rhs.getSLURLString(); - - case HOME_LOCATION: - case LAST_LOCATION: - return true; - default: - return false; + case LOCATION: + return ((mGrid == rhs.mGrid) && + (mRegion == rhs.mRegion) && + (mPosition == rhs.mPosition)); + case APP: + return getSLURLString() == rhs.getSLURLString(); + + case HOME_LOCATION: + case LAST_LOCATION: + return true; + default: + return false; } } @@ -654,25 +635,25 @@ bool LLSLURL::operator !=(const LLSLURL& rhs) std::string LLSLURL::getLocationString() const { return llformat("%s/%d/%d/%d", - mRegion.c_str(), - (int)llround(mPosition[0]), - (int)llround(mPosition[1]), - (int)llround(mPosition[2])); + mRegion.c_str(), + (int)llround(mPosition[0]), + (int)llround(mPosition[1]), + (int)llround(mPosition[2])); } std::string LLSLURL::asString() const { - std::ostringstream result; + std::ostringstream result; result << " mAppCmd:" << getAppCmd() << - " mAppPath:" + getAppPath().asString() << - " mAppQueryMap:" + getAppQueryMap().asString() << - " mAppQuery: " + getAppQuery() << - " mGrid: " + getGrid() << - " mRegion: " + getRegion() << - " mPosition: " << - " mType: " << mType << - " mPosition: " << mPosition << - " mHypergrid: " << mHypergrid; - return result.str(); + " mAppPath:" + getAppPath().asString() << + " mAppQueryMap:" + getAppQueryMap().asString() << + " mAppQuery: " + getAppQuery() << + " mGrid: " + getGrid() << + " mRegion: " + getRegion() << + " mPosition: " << + " mType: " << mType << + " mPosition: " << mPosition << + " mHypergrid: " << mHypergrid; + return result.str(); } // @@ -681,12 +662,23 @@ std::string LLSLURL::getTypeHumanReadable(SLURL_TYPE type) std::string ret; switch(type) { - case INVALID: ret = "INVALID"; break; - case LOCATION: ret = "LOCATION"; break; - case HOME_LOCATION: ret = "HOME_LOCATION"; break; - case LAST_LOCATION: ret = "LAST_LOCATION"; break; - case APP: ret = "APP"; break; - case HELP: ret = "HELP"; + case INVALID: + ret = "INVALID"; + break; + case LOCATION: + ret = "LOCATION"; + break; + case HOME_LOCATION: + ret = "HOME_LOCATION"; + break; + case LAST_LOCATION: + ret = "LAST_LOCATION"; + break; + case APP: + ret = "APP"; + break; + case HELP: + ret = "HELP"; } return ret; diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp index 1fb661bcc0..709a3d6660 100644 --- a/indra/newview/llurldispatcher.cpp +++ b/indra/newview/llurldispatcher.cpp @@ -217,11 +217,7 @@ bool LLURLDispatcherImpl::dispatchRegion(const LLSLURL& slurl, const std::string std::string gatekeeper = LLGridManager::getInstance()->getGatekeeper(grid); std::string current = LLGridManager::getInstance()->getGrid(); - if((grid != current ) - && (!LLGridManager::getInstance()->isInOpenSim() - || (!slurl.getHypergrid() && gatekeeper.empty() ) - ) - ) + if((grid != current ) && (!LLGridManager::getInstance()->isInOpenSim() || (!slurl.getHypergrid() && gatekeeper.empty()))) { std::string dest = hyper.getSLURLString(); if (!dest.empty()) @@ -242,11 +238,7 @@ bool LLURLDispatcherImpl::dispatchRegion(const LLSLURL& slurl, const std::string #endif //OPENSIM // // Request a region handle by name - LLWorldMapMessage::getInstance()->sendNamedRegionRequest(hyper.getRegion(), - LLURLDispatcherImpl::regionNameCallback, - hyper.getSLURLString(), -// - LLUI::sSettingGroups["config"]->getBOOL("SLURLTeleportDirectly")); // don't teleport + LLWorldMapMessage::getInstance()->sendNamedRegionRequest(hyper.getRegion(), LLURLDispatcherImpl::regionNameCallback, hyper.getSLURLString(), LLUI::sSettingGroups["config"]->getBOOL("SLURLTeleportDirectly")); // don't teleport return true; } @@ -266,8 +258,7 @@ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL& // #ifndef OPENSIM // we can't teleport cross grid at this point - if( LLGridManager::getInstance()->getGrid(slurl.getGrid()) - != LLGridManager::getInstance()->getGrid()) + if (LLGridManager::getInstance()->getGrid(slurl.getGrid()) != LLGridManager::getInstance()->getGrid()) { LLSD args; args["SLURL"] = slurl.getLocationString(); @@ -340,11 +331,7 @@ public: std::string region_name = slurl.getRegion(); std::string dest; std::string current = LLGridManager::getInstance()->getGrid(); - if((grid != current ) - && (!LLGridManager::getInstance()->isInOpenSim() - || (!slurl.getHypergrid() && gatekeeper.empty() ) - ) - ) + if((grid != current) && (!LLGridManager::getInstance()->isInOpenSim() || (!slurl.getHypergrid() && gatekeeper.empty()))) { dest = slurl.getSLURLString(); if (!dest.empty()) @@ -386,10 +373,7 @@ public: std::string region_name = LLURI::unescape(tokens[0]); - LLWorldMapMessage::getInstance()->sendNamedRegionRequest(region_name, - LLURLDispatcherImpl::regionHandleCallback, - LLSLURL(region_name, coords).getSLURLString(), - true); // teleport + LLWorldMapMessage::getInstance()->sendNamedRegionRequest(region_name, LLURLDispatcherImpl::regionHandleCallback, LLSLURL(region_name, coords).getSLURLString(), true);// teleport #endif // OPENSIM //