mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 02:05:34 +08:00
MapImageService: changed the event at which the map tiles are uploaded, because they were being uploaded before the region was registered with the grid
This commit is contained in:
@@ -146,9 +146,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
|
||||
lock (m_scenes)
|
||||
m_scenes[scene.RegionInfo.RegionID] = scene;
|
||||
|
||||
scene.EventManager.OnPrimsLoaded += new EventManager.PrimsLoaded(EventManager_OnPrimsLoaded);
|
||||
scene.EventManager.OnLoginsEnabled += OnLoginsEnabled;
|
||||
}
|
||||
|
||||
|
||||
///<summary>
|
||||
///
|
||||
///</summary>
|
||||
@@ -163,9 +164,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
|
||||
|
||||
#endregion ISharedRegionModule
|
||||
|
||||
void EventManager_OnPrimsLoaded(Scene s)
|
||||
void OnLoginsEnabled(string regionName)
|
||||
{
|
||||
UploadMapTile(s);
|
||||
Scene scene = null;
|
||||
foreach (Scene s in m_scenes.Values)
|
||||
if (s.RegionInfo.RegionName == regionName)
|
||||
{
|
||||
scene = s;
|
||||
break;
|
||||
}
|
||||
if (scene != null)
|
||||
UploadMapTile(scene);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -129,10 +129,10 @@ namespace OpenSim.Server.Handlers.MapImage
|
||||
|
||||
if (m_GridService != null)
|
||||
{
|
||||
System.Net.IPAddress ipAddr = GetCallerIP(httpRequest);
|
||||
GridRegion r = m_GridService.GetRegionByPosition(UUID.Zero, x * (int)Constants.RegionSize, y * (int)Constants.RegionSize);
|
||||
if (r != null)
|
||||
{
|
||||
System.Net.IPAddress ipAddr = GetCallerIP(httpRequest);
|
||||
if (r.ExternalEndPoint.Address.ToString() != ipAddr.ToString())
|
||||
{
|
||||
m_log.WarnFormat("[MAP IMAGE HANDLER]: IP address {0} may be trying to impersonate region in IP {1}", ipAddr, r.ExternalEndPoint.Address);
|
||||
@@ -143,7 +143,7 @@ namespace OpenSim.Server.Handlers.MapImage
|
||||
else
|
||||
{
|
||||
m_log.WarnFormat("[MAP IMAGE HANDLER]: IP address {0} may be rogue. Region not found at coordinates {1}-{2}",
|
||||
httpRequest.RemoteIPEndPoint.Address, x, y);
|
||||
ipAddr, x, y);
|
||||
return FailureResult("Region not found at given coordinates");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user