MapImageService: changed the event at which the map tiles are uploaded, because they were being uploaded before the region was registered with the grid

0.7.4.1
Diva Canto 2012-04-27 11:05:40 -07:00
parent a9dbe39319
commit 9bc94c502a
2 changed files with 14 additions and 5 deletions

View File

@ -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);
}

View File

@ -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");
}
}