work on previus 2 patchs
parent
999a068172
commit
31aef4e82b
|
@ -71,8 +71,6 @@ namespace OpenSim.Data
|
|||
{
|
||||
RegionData Get(UUID regionID, UUID ScopeID);
|
||||
List<RegionData> Get(string regionName, UUID ScopeID);
|
||||
|
||||
//BA MOD....
|
||||
RegionData GetSpecific(string regionName, UUID ScopeID);
|
||||
|
||||
RegionData Get(int x, int y, UUID ScopeID);
|
||||
|
|
|
@ -81,15 +81,12 @@ namespace OpenSim.Data.MySQL
|
|||
}
|
||||
}
|
||||
|
||||
//BA MOD....
|
||||
public RegionData GetSpecific(string regionName, UUID scopeID)
|
||||
{
|
||||
string command = "select * from `" + m_Realm + "` where regionName = ?regionName";
|
||||
if (scopeID != UUID.Zero)
|
||||
command += " and ScopeID = ?scopeID";
|
||||
|
||||
//command += " order by regionName";
|
||||
|
||||
using (MySqlCommand cmd = new MySqlCommand(command))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("?regionName", regionName);
|
||||
|
@ -104,27 +101,8 @@ namespace OpenSim.Data.MySQL
|
|||
|
||||
}
|
||||
|
||||
public RegionData Get(int posX, int posY, UUID scopeID)
|
||||
public RegionData Get(int posX, int posY, UUID scopeID)
|
||||
{
|
||||
/* fixed size regions
|
||||
string command = "select * from `"+m_Realm+"` where locX = ?posX and locY = ?posY";
|
||||
if (scopeID != UUID.Zero)
|
||||
command += " and ScopeID = ?scopeID";
|
||||
|
||||
using (MySqlCommand cmd = new MySqlCommand(command))
|
||||
{
|
||||
cmd.Parameters.AddWithValue("?posX", posX.ToString());
|
||||
cmd.Parameters.AddWithValue("?posY", posY.ToString());
|
||||
cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString());
|
||||
|
||||
List<RegionData> ret = RunCommand(cmd);
|
||||
if (ret.Count == 0)
|
||||
return null;
|
||||
|
||||
return ret[0];
|
||||
}
|
||||
*/
|
||||
// extend database search for maximum region size area
|
||||
string command = "select * from `" + m_Realm + "` where locX between ?startX and ?endX and locY between ?startY and ?endY";
|
||||
if (scopeID != UUID.Zero)
|
||||
command += " and ScopeID = ?scopeID";
|
||||
|
|
|
@ -68,12 +68,34 @@ namespace OpenSim.Data.Null
|
|||
|
||||
private delegate bool Matcher(string value);
|
||||
|
||||
public RegionData GetSpecific(string regionName, UUID scopeID)
|
||||
{
|
||||
if (m_useStaticInstance && Instance != this)
|
||||
return Instance.GetSpecific(regionName, scopeID);
|
||||
|
||||
string cleanName = regionName.ToLower();
|
||||
Matcher queryMatch;
|
||||
queryMatch = delegate (string s) { return s.Equals(cleanName); };
|
||||
|
||||
lock (m_regionData)
|
||||
{
|
||||
foreach (RegionData r in m_regionData.Values)
|
||||
{
|
||||
// m_log.DebugFormat("[NULL REGION DATA]: comparing {0} to {1}", cleanName, r.RegionName.ToLower());
|
||||
if (queryMatch(r.RegionName.ToLower()))
|
||||
return(r);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<RegionData> Get(string regionName, UUID scopeID)
|
||||
{
|
||||
if (m_useStaticInstance && Instance != this)
|
||||
return Instance.Get(regionName, scopeID);
|
||||
|
||||
// m_log.DebugFormat("[NULL REGION DATA]: Getting region {0}, scope {1}", regionName, scopeID);
|
||||
// m_log.DebugFormat("[NULL REGION DATA]: Getting region {0}, scope {1}", regionName, scopeID);
|
||||
|
||||
string cleanName = regionName.ToLower();
|
||||
|
||||
|
@ -166,13 +188,7 @@ namespace OpenSim.Data.Null
|
|||
return null;
|
||||
}
|
||||
|
||||
//BA MOD...
|
||||
public RegionData GetSpecific(string regionName, UUID ScopeID)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<RegionData> Get(int startX, int startY, int endX, int endY, UUID scopeID)
|
||||
public List<RegionData> Get(int startX, int startY, int endX, int endY, UUID scopeID)
|
||||
{
|
||||
if (m_useStaticInstance && Instance != this)
|
||||
return Instance.Get(startX, startY, endX, endY, scopeID);
|
||||
|
|
|
@ -114,7 +114,6 @@ namespace OpenSim.Data.PGSQL
|
|||
}
|
||||
}
|
||||
|
||||
//BA MOD...
|
||||
public RegionData GetSpecific(string regionName, UUID scopeID)
|
||||
{
|
||||
string sql = "select * from " + m_Realm + " where lower(\"regionName\") = lower(:regionName) ";
|
||||
|
|
|
@ -240,12 +240,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
return rinfo;
|
||||
}
|
||||
|
||||
public GridRegion GetRegionByNameSpecific(UUID scopeID, string regionName)
|
||||
{
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRegion GetRegionByName(UUID scopeID, string regionName)
|
||||
{
|
||||
bool inCache = false;
|
||||
|
|
|
@ -236,12 +236,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
|
|||
return rinfo;
|
||||
}
|
||||
|
||||
public GridRegion GetRegionByNameSpecific(UUID scopeID, string regionName)
|
||||
{
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRegion GetRegionByName(UUID scopeID, string name)
|
||||
{
|
||||
GridRegion rinfo = m_LocalGridService.GetRegionByName(scopeID, name);
|
||||
|
|
|
@ -132,13 +132,8 @@ namespace OpenSim.Server.Handlers.Login
|
|||
|
||||
//m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion);
|
||||
|
||||
|
||||
bool LibOMVclient = false;
|
||||
if (request.Params.Count > 4 && (string)request.Params[4] == "gridproxy")
|
||||
LibOMVclient = true;
|
||||
|
||||
LoginResponse reply = null;
|
||||
reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, channel, mac, id0, remoteClient, LibOMVclient);
|
||||
reply = m_LocalService.Login(first, last, passwd, startLocation, scopeID, clientVersion, channel, mac, id0, remoteClient);
|
||||
|
||||
XmlRpcResponse response = new XmlRpcResponse();
|
||||
response.Value = reply.ToHashtable();
|
||||
|
@ -221,7 +216,7 @@ namespace OpenSim.Server.Handlers.Login
|
|||
|
||||
LoginResponse reply = null;
|
||||
reply = m_LocalService.Login(map["first"].AsString(), map["last"].AsString(), map["passwd"].AsString(), startLocation, scopeID,
|
||||
map["version"].AsString(), map["channel"].AsString(), map["mac"].AsString(), map["id0"].AsString(), remoteClient,false);
|
||||
map["version"].AsString(), map["channel"].AsString(), map["mac"].AsString(), map["id0"].AsString(), remoteClient);
|
||||
return reply.ToOSDMap();
|
||||
|
||||
}
|
||||
|
@ -264,7 +259,7 @@ namespace OpenSim.Server.Handlers.Login
|
|||
(sender as WebSocketHttpServerHandler).GetRemoteIPEndpoint();
|
||||
LoginResponse reply = null;
|
||||
reply = m_LocalService.Login(first, last, passwd, start, scope, version,
|
||||
channel, mac, id0, endPoint,false);
|
||||
channel, mac, id0, endPoint);
|
||||
sock.SendMessage(OSDParser.SerializeJsonString(reply.ToOSDMap()));
|
||||
|
||||
}
|
||||
|
|
|
@ -330,12 +330,6 @@ namespace OpenSim.Services.Connectors
|
|||
return rinfo;
|
||||
}
|
||||
|
||||
public GridRegion GetRegionByNameSpecific(UUID scopeID, string regionName)
|
||||
{
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public GridRegion GetRegionByName(UUID scopeID, string regionName)
|
||||
{
|
||||
Dictionary<string, object> sendData = new Dictionary<string, object>();
|
||||
|
|
|
@ -100,8 +100,6 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
|||
|
||||
#region IGridService
|
||||
|
||||
|
||||
|
||||
public string RegisterRegion(UUID scopeID, GridRegion regionInfo)
|
||||
{
|
||||
IPEndPoint ext = regionInfo.ExternalEndPoint;
|
||||
|
|
|
@ -476,9 +476,9 @@ namespace OpenSim.Services.GridService
|
|||
|
||||
public GridRegion GetRegionByName(UUID scopeID, string name)
|
||||
{
|
||||
List<RegionData> rdatas = m_Database.Get(Util.EscapeForLike(name), scopeID);
|
||||
if ((rdatas != null) && (rdatas.Count > 0))
|
||||
return RegionData2RegionInfo(rdatas[0]); // get the first
|
||||
RegionData rdata = m_Database.GetSpecific(name, scopeID);
|
||||
if (rdata != null)
|
||||
return RegionData2RegionInfo(rdata);
|
||||
|
||||
if (m_AllowHypergridMapSearch)
|
||||
{
|
||||
|
@ -490,18 +490,7 @@ namespace OpenSim.Services.GridService
|
|||
return null;
|
||||
}
|
||||
|
||||
//BA MOD....
|
||||
public GridRegion GetRegionByNameSpecific(UUID scopeID, string name)
|
||||
{
|
||||
RegionData rdata = m_Database.GetSpecific(name, scopeID);
|
||||
if (rdata != null)
|
||||
{
|
||||
return RegionData2RegionInfo(rdata);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<GridRegion> GetRegionsByName(UUID scopeID, string name, int maxNumber)
|
||||
public List<GridRegion> GetRegionsByName(UUID scopeID, string name, int maxNumber)
|
||||
{
|
||||
// m_log.DebugFormat("[GRID SERVICE]: GetRegionsByName {0}", name);
|
||||
|
||||
|
@ -510,7 +499,7 @@ namespace OpenSim.Services.GridService
|
|||
int count = 0;
|
||||
List<GridRegion> rinfos = new List<GridRegion>();
|
||||
|
||||
if (count < maxNumber && m_AllowHypergridMapSearch && name.Contains("."))
|
||||
if (m_AllowHypergridMapSearch && name.Contains("."))
|
||||
{
|
||||
string regionURI = "";
|
||||
string regionHost = "";
|
||||
|
@ -538,7 +527,7 @@ namespace OpenSim.Services.GridService
|
|||
{
|
||||
if (count++ < maxNumber)
|
||||
rinfos.Add(RegionData2RegionInfo(rdata));
|
||||
if(rdata.RegionName == mapname)
|
||||
if(mapname.Equals(rdata.RegionName,StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
haveMatch = true;
|
||||
if(count == maxNumber)
|
||||
|
@ -560,7 +549,7 @@ namespace OpenSim.Services.GridService
|
|||
{
|
||||
if (count++ < maxNumber)
|
||||
rinfos.Add(RegionData2RegionInfo(rdata));
|
||||
if(rdata.RegionName == mapname)
|
||||
if (mapname.Equals(rdata.RegionName, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
haveMatch = true;
|
||||
if(count == maxNumber)
|
||||
|
@ -588,11 +577,20 @@ namespace OpenSim.Services.GridService
|
|||
}
|
||||
else if (rdatas != null && (rdatas.Count > 0))
|
||||
{
|
||||
// m_log.DebugFormat("[GRID SERVICE]: Found {0} regions", rdatas.Count);
|
||||
//m_log.DebugFormat("[GRID SERVICE]: Found {0} regions", rdatas.Count);
|
||||
foreach (RegionData rdata in rdatas)
|
||||
{
|
||||
if (count++ < maxNumber)
|
||||
rinfos.Add(RegionData2RegionInfo(rdata));
|
||||
if (name.Equals(rdata.RegionName, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (count == maxNumber)
|
||||
{
|
||||
rinfos.RemoveAt(count - 1);
|
||||
rinfos.Add(RegionData2RegionInfo(rdata));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -84,10 +84,6 @@ namespace OpenSim.Services.Interfaces
|
|||
/// <returns>Returns the region information if the name matched. Null otherwise.</returns>
|
||||
GridRegion GetRegionByName(UUID scopeID, string regionName);
|
||||
|
||||
|
||||
//BA MOD.....
|
||||
GridRegion GetRegionByNameSpecific(UUID scopeID, string regionName);
|
||||
|
||||
/// <summary>
|
||||
/// Get information about regions starting with the provided name.
|
||||
/// </summary>
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace OpenSim.Services.Interfaces
|
|||
public interface ILoginService
|
||||
{
|
||||
LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID,
|
||||
string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP, bool LibOMVclient);
|
||||
string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP);
|
||||
Hashtable SetLevel(string firstName, string lastName, string passwd, int level, IPEndPoint clientIP);
|
||||
}
|
||||
|
||||
|
|
|
@ -285,18 +285,15 @@ namespace OpenSim.Services.LLLoginService
|
|||
}
|
||||
|
||||
public LoginResponse Login(string firstName, string lastName, string passwd, string startLocation, UUID scopeID,
|
||||
string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP, bool LibOMVclient)
|
||||
string clientVersion, string channel, string mac, string id0, IPEndPoint clientIP)
|
||||
{
|
||||
bool success = false;
|
||||
UUID session = UUID.Random();
|
||||
|
||||
string processedMessage;
|
||||
|
||||
if (clientVersion.Contains("Radegast"))
|
||||
LibOMVclient = false;
|
||||
|
||||
m_log.InfoFormat("[LLOGIN SERVICE]: Login request for {0} {1} at {2} using viewer {3}, channel {4}, IP {5}, Mac {6}, Id0 {7}, Possible LibOMVGridProxy: {8} ",
|
||||
firstName, lastName, startLocation, clientVersion, channel, clientIP.Address.ToString(), mac, id0, LibOMVclient.ToString());
|
||||
firstName, lastName, startLocation, clientVersion, channel, clientIP.Address.ToString(), mac, id0);
|
||||
|
||||
string curMac = mac.ToString();
|
||||
|
||||
|
@ -699,7 +696,6 @@ namespace OpenSim.Services.LLLoginService
|
|||
where = "safe";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -735,41 +731,32 @@ namespace OpenSim.Services.LLLoginService
|
|||
{
|
||||
if (!regionName.Contains("@"))
|
||||
{
|
||||
List<GridRegion> regions = m_GridService.GetRegionsByName(scopeID, regionName, 1);
|
||||
if ((regions == null) || (regions != null && regions.Count == 0))
|
||||
region = m_GridService.GetRegionByName (scopeID, regionName);
|
||||
if(region != null)
|
||||
return region;
|
||||
|
||||
m_log.InfoFormat("[LLLOGIN SERVICE]: Got Custom Login URI {0}, can't locate region {1}. Trying defaults.", startLocation, regionName);
|
||||
List<GridRegion> regions = m_GridService.GetDefaultRegions(scopeID);
|
||||
if (regions != null && regions.Count > 0)
|
||||
{
|
||||
m_log.InfoFormat("[LLLOGIN SERVICE]: Got Custom Login URI {0}, can't locate region {1}. Trying defaults.", startLocation, regionName);
|
||||
regions = m_GridService.GetDefaultRegions(scopeID);
|
||||
if (regions != null && regions.Count > 0)
|
||||
where = "safe";
|
||||
return regions[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.Info("[LLOGIN SERVICE]: Last Region Not Found Attempting to find random region");
|
||||
region = FindAlternativeRegion(scopeID);
|
||||
if (region != null)
|
||||
{
|
||||
where = "safe";
|
||||
return regions[0];
|
||||
return region;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.Info("[LLOGIN SERVICE]: Last Region Not Found Attempting to find random region");
|
||||
region = FindAlternativeRegion(scopeID);
|
||||
if (region != null)
|
||||
{
|
||||
where = "safe";
|
||||
return region;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_log.InfoFormat("[LLLOGIN SERVICE]: Got Custom Login URI {0}, Grid does not provide default regions and no alternative found.", startLocation);
|
||||
return null;
|
||||
}
|
||||
m_log.InfoFormat("[LLLOGIN SERVICE]: Got Custom Login URI {0}, Grid does not provide default regions and no alternative found.", startLocation);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//find a exact match
|
||||
foreach(GridRegion r in regions)
|
||||
{
|
||||
if(string.Equals(regionName, r.RegionName, StringComparison.InvariantCultureIgnoreCase))
|
||||
return r;
|
||||
}
|
||||
// else, whatever
|
||||
return regions[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue