Merge branch 'master' into bigmerge

Conflicts:
	OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
	OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
avinationmerge
Melanie 2011-11-19 22:39:15 +00:00
commit bdb5ac96d9
26 changed files with 5647 additions and 5565 deletions

View File

@ -37,10 +37,30 @@ namespace OpenSim.Data
public UUID RegionID; public UUID RegionID;
public UUID ScopeID; public UUID ScopeID;
public string RegionName; public string RegionName;
/// <summary>
/// The position in meters of this region.
/// </summary>
public int posX; public int posX;
/// <summary>
/// The position in meters of this region.
/// </summary>
public int posY; public int posY;
public int sizeX; public int sizeX;
public int sizeY; public int sizeY;
/// <summary>
/// Return the x-coordinate of this region.
/// </summary>
public int coordX { get { return posX / (int)Constants.RegionSize; } }
/// <summary>
/// Return the y-coordinate of this region.
/// </summary>
public int coordY { get { return posY / (int)Constants.RegionSize; } }
public Dictionary<string, object> Data; public Dictionary<string, object> Data;
} }

View File

@ -298,7 +298,7 @@ namespace OpenSim.Framework
catch (Exception e) catch (Exception e)
{ {
// don't need to treat this as an error... we're just guessing anyway // don't need to treat this as an error... we're just guessing anyway
m_log.DebugFormat("[WEB UTIL] couldn't decode <{0}>: {1}",response,e.Message); // m_log.DebugFormat("[WEB UTIL] couldn't decode <{0}>: {1}",response,e.Message);
} }
return result; return result;

View File

@ -25,11 +25,12 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using log4net;
using Nini.Config;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Server.Base; using OpenSim.Server.Base;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -119,10 +120,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
#region INeighbourService #region INeighbourService
public GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion) public OpenSim.Services.Interfaces.GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
{ {
m_log.DebugFormat("[NEIGHBOUR CONNECTOR]: HelloNeighbour from {0}, to {1}.", uint x, y;
thisRegion.RegionName, regionHandle); Utils.LongToUInts(regionHandle, out x, out y);
m_log.DebugFormat("[NEIGHBOUR CONNECTOR]: HelloNeighbour from region {0} to region at {1}-{2}",
thisRegion.RegionName, x / Constants.RegionSize, y / Constants.RegionSize);
foreach (Scene s in m_Scenes) foreach (Scene s in m_Scenes)
{ {
if (s.RegionInfo.RegionHandle == regionHandle) if (s.RegionInfo.RegionHandle == regionHandle)

View File

@ -196,7 +196,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
} }
} }
m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Did not find region {0} for SendCreateChildAgent", destination.RegionName);
reason = "Did not find region " + destination.RegionName; reason = "Did not find region " + destination.RegionName;
return false; return false;
} }

View File

@ -86,6 +86,11 @@ namespace OpenSim.Region.CoreModules.World.Terrain
private volatile bool m_tainted; private volatile bool m_tainted;
private readonly Stack<LandUndoState> m_undo = new Stack<LandUndoState>(5); private readonly Stack<LandUndoState> m_undo = new Stack<LandUndoState>(5);
/// <summary>
/// Human readable list of terrain file extensions that are supported.
/// </summary>
private string m_supportedFileExtensions = "";
#region ICommandableModule Members #region ICommandableModule Members
public ICommander CommandInterface public ICommander CommandInterface
@ -135,6 +140,15 @@ namespace OpenSim.Region.CoreModules.World.Terrain
InstallDefaultEffects(); InstallDefaultEffects();
LoadPlugins(); LoadPlugins();
// Generate user-readable extensions list
string supportedFilesSeparator = "";
foreach (KeyValuePair<string, ITerrainLoader> loader in m_loaders)
{
m_supportedFileExtensions += supportedFilesSeparator + loader.Key + " (" + loader.Value + ")";
supportedFilesSeparator = ", ";
}
} }
public void RegionLoaded(Scene scene) public void RegionLoaded(Scene scene)
@ -251,20 +265,19 @@ namespace OpenSim.Region.CoreModules.World.Terrain
if (filename.EndsWith(loader.Key)) if (filename.EndsWith(loader.Key))
{ {
loader.Value.SaveFile(filename, m_channel); loader.Value.SaveFile(filename, m_channel);
m_log.InfoFormat("[TERRAIN]: Saved terrain from {0} to {1}", m_scene.RegionInfo.RegionName, filename);
return; return;
} }
} }
} }
catch (NotImplementedException)
{
m_log.Error("Unable to save to " + filename + ", saving of this file format has not been implemented.");
throw new TerrainException(String.Format("Unable to save heightmap: saving of this file format not implemented"));
}
catch (IOException ioe) catch (IOException ioe)
{ {
m_log.Error(String.Format("[TERRAIN]: Unable to save to {0}, {1}", filename, ioe.Message)); m_log.Error(String.Format("[TERRAIN]: Unable to save to {0}, {1}", filename, ioe.Message));
throw new TerrainException(String.Format("Unable to save heightmap: {0}", ioe.Message));
} }
m_log.ErrorFormat(
"[TERRAIN]: Could not save terrain from {0} to {1}. Valid file extensions are {2}",
m_scene.RegionInfo.RegionName, filename, m_supportedFileExtensions);
} }
/// <summary> /// <summary>
@ -345,6 +358,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
float duration = 0.25f; float duration = 0.25f;
if (action == 0) if (action == 0)
duration = 4.0f; duration = 4.0f;
client_OnModifyTerrain(user, (float)pos.Z, duration, size, action, pos.Y, pos.X, pos.Y, pos.X, agentId); client_OnModifyTerrain(user, (float)pos.Z, duration, size, action, pos.Y, pos.X, pos.Y, pos.X, agentId);
} }
@ -534,6 +548,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
m_channel = channel; m_channel = channel;
UpdateRevertMap(); UpdateRevertMap();
} }
return; return;
} }
} }
@ -566,10 +581,17 @@ namespace OpenSim.Region.CoreModules.World.Terrain
fileWidth, fileHeight, fileWidth, fileHeight,
(int)Constants.RegionSize, (int)Constants.RegionSize,
(int)Constants.RegionSize); (int)Constants.RegionSize);
m_log.InfoFormat("[TERRAIN]: Saved terrain from {0} to {1}", m_scene.RegionInfo.RegionName, filename);
} }
return; return;
} }
} }
m_log.ErrorFormat(
"[TERRAIN]: Could not save terrain from {0} to {1}. Valid file extensions are {2}",
m_scene.RegionInfo.RegionName, filename, m_supportedFileExtensions);
} }
} }
@ -1126,32 +1148,23 @@ namespace OpenSim.Region.CoreModules.World.Terrain
private void InstallInterfaces() private void InstallInterfaces()
{ {
// Load / Save
string supportedFileExtensions = "";
string supportedFilesSeparator = "";
foreach (KeyValuePair<string, ITerrainLoader> loader in m_loaders)
{
supportedFileExtensions += supportedFilesSeparator + loader.Key + " (" + loader.Value + ")";
supportedFilesSeparator = ", ";
}
Command loadFromFileCommand = Command loadFromFileCommand =
new Command("load", CommandIntentions.COMMAND_HAZARDOUS, InterfaceLoadFile, "Loads a terrain from a specified file."); new Command("load", CommandIntentions.COMMAND_HAZARDOUS, InterfaceLoadFile, "Loads a terrain from a specified file.");
loadFromFileCommand.AddArgument("filename", loadFromFileCommand.AddArgument("filename",
"The file you wish to load from, the file extension determines the loader to be used. Supported extensions include: " + "The file you wish to load from, the file extension determines the loader to be used. Supported extensions include: " +
supportedFileExtensions, "String"); m_supportedFileExtensions, "String");
Command saveToFileCommand = Command saveToFileCommand =
new Command("save", CommandIntentions.COMMAND_NON_HAZARDOUS, InterfaceSaveFile, "Saves the current heightmap to a specified file."); new Command("save", CommandIntentions.COMMAND_NON_HAZARDOUS, InterfaceSaveFile, "Saves the current heightmap to a specified file.");
saveToFileCommand.AddArgument("filename", saveToFileCommand.AddArgument("filename",
"The destination filename for your heightmap, the file extension determines the format to save in. Supported extensions include: " + "The destination filename for your heightmap, the file extension determines the format to save in. Supported extensions include: " +
supportedFileExtensions, "String"); m_supportedFileExtensions, "String");
Command loadFromTileCommand = Command loadFromTileCommand =
new Command("load-tile", CommandIntentions.COMMAND_HAZARDOUS, InterfaceLoadTileFile, "Loads a terrain from a section of a larger file."); new Command("load-tile", CommandIntentions.COMMAND_HAZARDOUS, InterfaceLoadTileFile, "Loads a terrain from a section of a larger file.");
loadFromTileCommand.AddArgument("filename", loadFromTileCommand.AddArgument("filename",
"The file you wish to load from, the file extension determines the loader to be used. Supported extensions include: " + "The file you wish to load from, the file extension determines the loader to be used. Supported extensions include: " +
supportedFileExtensions, "String"); m_supportedFileExtensions, "String");
loadFromTileCommand.AddArgument("file width", "The width of the file in tiles", "Integer"); loadFromTileCommand.AddArgument("file width", "The width of the file in tiles", "Integer");
loadFromTileCommand.AddArgument("file height", "The height of the file in tiles", "Integer"); loadFromTileCommand.AddArgument("file height", "The height of the file in tiles", "Integer");
loadFromTileCommand.AddArgument("minimum X tile", "The X region coordinate of the first section on the file", loadFromTileCommand.AddArgument("minimum X tile", "The X region coordinate of the first section on the file",
@ -1163,7 +1176,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
new Command("save-tile", CommandIntentions.COMMAND_HAZARDOUS, InterfaceSaveTileFile, "Saves the current heightmap to the larger file."); new Command("save-tile", CommandIntentions.COMMAND_HAZARDOUS, InterfaceSaveTileFile, "Saves the current heightmap to the larger file.");
saveToTileCommand.AddArgument("filename", saveToTileCommand.AddArgument("filename",
"The file you wish to save to, the file extension determines the loader to be used. Supported extensions include: " + "The file you wish to save to, the file extension determines the loader to be used. Supported extensions include: " +
supportedFileExtensions, "String"); m_supportedFileExtensions, "String");
saveToTileCommand.AddArgument("file width", "The width of the file in tiles", "Integer"); saveToTileCommand.AddArgument("file width", "The width of the file in tiles", "Integer");
saveToTileCommand.AddArgument("file height", "The height of the file in tiles", "Integer"); saveToTileCommand.AddArgument("file height", "The height of the file in tiles", "Integer");
saveToTileCommand.AddArgument("minimum X tile", "The X region coordinate of the first section on the file", saveToTileCommand.AddArgument("minimum X tile", "The X region coordinate of the first section on the file",

View File

@ -102,9 +102,10 @@ namespace OpenSim.Region.Framework.Scenes
public event OnPluginConsoleDelegate OnPluginConsole; public event OnPluginConsoleDelegate OnPluginConsole;
public delegate void OnShutdownDelegate(); /// <summary>
/// Triggered when the entire simulator is shutdown.
public event OnShutdownDelegate OnShutdown; /// </summary>
public event Action OnShutdown;
public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs);
public delegate void ScriptResetDelegate(uint localID, UUID itemID); public delegate void ScriptResetDelegate(uint localID, UUID itemID);
@ -117,9 +118,14 @@ namespace OpenSim.Region.Framework.Scenes
public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
public delegate void SceneShuttingDownDelegate(Scene scene); /// <summary>
/// Triggered when an individual scene is shutdown.
public event SceneShuttingDownDelegate OnSceneShuttingDown; /// </summary>
/// <remarks>
/// This does not automatically mean that the entire simulator is shutting down. Listen to OnShutdown for that
/// notification.
/// </remarks>
public event Action<Scene> OnSceneShuttingDown;
/// <summary> /// <summary>
/// Fired when an object is touched/grabbed. /// Fired when an object is touched/grabbed.
@ -893,10 +899,10 @@ namespace OpenSim.Region.Framework.Scenes
public void TriggerShutdown() public void TriggerShutdown()
{ {
OnShutdownDelegate handlerShutdown = OnShutdown; Action handlerShutdown = OnShutdown;
if (handlerShutdown != null) if (handlerShutdown != null)
{ {
foreach (OnShutdownDelegate d in handlerShutdown.GetInvocationList()) foreach (Action d in handlerShutdown.GetInvocationList())
{ {
try try
{ {
@ -2236,10 +2242,10 @@ namespace OpenSim.Region.Framework.Scenes
public void TriggerSceneShuttingDown(Scene s) public void TriggerSceneShuttingDown(Scene s)
{ {
SceneShuttingDownDelegate handler = OnSceneShuttingDown; Action<Scene> handler = OnSceneShuttingDown;
if (handler != null) if (handler != null)
{ {
foreach (SceneShuttingDownDelegate d in handler.GetInvocationList()) foreach (Action<Scene> d in handler.GetInvocationList())
{ {
try try
{ {

View File

@ -5218,18 +5218,16 @@ namespace OpenSim.Region.Framework.Scenes
return offsets.ToArray(); return offsets.ToArray();
} }
/// <summary>
/// Regenerate the maptile for this scene.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void RegenerateMaptile(object sender, ElapsedEventArgs e) public void RegenerateMaptile(object sender, ElapsedEventArgs e)
{ {
IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>(); IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>();
if (mapModule != null) if (mapModule != null)
{
mapModule.GenerateMaptile(); mapModule.GenerateMaptile();
string error = GridService.RegisterRegion(RegionInfo.ScopeID, new GridRegion(RegionInfo));
if (error != String.Empty)
throw new Exception(error);
}
} }
// public void CleanDroppedAttachments() // public void CleanDroppedAttachments()

View File

@ -174,7 +174,6 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// We're ignoring a collection was modified error because this data gets old and outdated fast. // We're ignoring a collection was modified error because this data gets old and outdated fast.
} }
} }
public delegate void SendCloseChildAgentDelegate(UUID agentID, ulong regionHandle); public delegate void SendCloseChildAgentDelegate(UUID agentID, ulong regionHandle);
@ -185,13 +184,12 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary> /// </summary>
protected void SendCloseChildAgentAsync(UUID agentID, ulong regionHandle) protected void SendCloseChildAgentAsync(UUID agentID, ulong regionHandle)
{ {
//m_log.Debug("[INTERGRID]: Sending close agent to " + regionHandle);
// let's do our best, but there's not much we can do if the neighbour doesn't accept. // let's do our best, but there's not much we can do if the neighbour doesn't accept.
//m_commsProvider.InterRegion.TellRegionToCloseChildConnection(regionHandle, agentID); //m_commsProvider.InterRegion.TellRegionToCloseChildConnection(regionHandle, agentID);
uint x = 0, y = 0; uint x = 0, y = 0;
Utils.LongToUInts(regionHandle, out x, out y); Utils.LongToUInts(regionHandle, out x, out y);
GridRegion destination = m_scene.GridService.GetRegionByPosition(m_regionInfo.ScopeID, (int)x, (int)y); GridRegion destination = m_scene.GridService.GetRegionByPosition(m_regionInfo.ScopeID, (int)x, (int)y);
m_scene.SimulationService.CloseChildAgent(destination, agentID); m_scene.SimulationService.CloseChildAgent(destination, agentID);
} }

View File

@ -91,6 +91,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine
private bool m_KillTimedOutScripts; private bool m_KillTimedOutScripts;
private string m_ScriptEnginesPath = null; private string m_ScriptEnginesPath = null;
/// <summary>
/// Is the entire simulator in the process of shutting down?
/// </summary>
private bool m_SimulatorShuttingDown;
private static List<XEngine> m_ScriptEngines = private static List<XEngine> m_ScriptEngines =
new List<XEngine>(); new List<XEngine>();
@ -537,6 +542,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// Must be done explicitly because they have infinite // Must be done explicitly because they have infinite
// lifetime // lifetime
// //
if (!m_SimulatorShuttingDown)
{
m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); m_DomainScripts[instance.AppDomain].Remove(instance.ItemID);
if (m_DomainScripts[instance.AppDomain].Count == 0) if (m_DomainScripts[instance.AppDomain].Count == 0)
{ {
@ -544,6 +551,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine
UnloadAppDomain(instance.AppDomain); UnloadAppDomain(instance.AppDomain);
} }
} }
m_Scripts.Clear();
m_PrimObjects.Clear();
m_Assemblies.Clear();
m_DomainScripts.Clear();
}
lockScriptsForRead(false); lockScriptsForRead(false);
lockScriptsForWrite(true); lockScriptsForWrite(true);
m_Scripts.Clear(); m_Scripts.Clear();
@ -1512,6 +1525,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
public void OnShutdown() public void OnShutdown()
{ {
m_SimulatorShuttingDown = true;
List<IScriptInstance> instances = new List<IScriptInstance>(); List<IScriptInstance> instances = new List<IScriptInstance>();
lockScriptsForRead(true); lockScriptsForRead(true);

View File

@ -99,7 +99,6 @@ namespace OpenSim.Server.Handlers.Hypergrid
} }
return FailureResult(); return FailureResult();
} }
#region Method-specific handlers #region Method-specific handlers
@ -127,7 +126,6 @@ namespace OpenSim.Server.Handlers.Hypergrid
return FailureResult(); return FailureResult();
} }
string perms = "0";
FriendInfo[] friendsInfo = m_FriendsService.GetFriends(principalID); FriendInfo[] friendsInfo = m_FriendsService.GetFriends(principalID);
foreach (FriendInfo finfo in friendsInfo) foreach (FriendInfo finfo in friendsInfo)
{ {

View File

@ -79,7 +79,7 @@ namespace OpenSim.Server.Handlers.MapImage
public override byte[] Handle(string path, Stream requestData, OSHttpRequest httpRequest, OSHttpResponse httpResponse) public override byte[] Handle(string path, Stream requestData, OSHttpRequest httpRequest, OSHttpResponse httpResponse)
{ {
m_log.DebugFormat("[MAP SERVICE IMAGE HANDLER]: Received {0}", path); // m_log.DebugFormat("[MAP SERVICE IMAGE HANDLER]: Received {0}", path);
StreamReader sr = new StreamReader(requestData); StreamReader sr = new StreamReader(requestData);
string body = sr.ReadToEnd(); string body = sr.ReadToEnd();
sr.Close(); sr.Close();
@ -97,9 +97,14 @@ namespace OpenSim.Server.Handlers.MapImage
int x = 0, y = 0; int x = 0, y = 0;
Int32.TryParse(request["X"].ToString(), out x); Int32.TryParse(request["X"].ToString(), out x);
Int32.TryParse(request["Y"].ToString(), out y); Int32.TryParse(request["Y"].ToString(), out y);
string type = "image/jpeg";
if (request.ContainsKey("TYPE")) m_log.DebugFormat("[MAP ADD SERVER CONNECTOR]: Received map data for region at {0}-{1}", x, y);
type = request["TYPE"].ToString();
// string type = "image/jpeg";
//
// if (request.ContainsKey("TYPE"))
// type = request["TYPE"].ToString();
byte[] data = Convert.FromBase64String(request["DATA"].ToString()); byte[] data = Convert.FromBase64String(request["DATA"].ToString());
string reason = string.Empty; string reason = string.Empty;
@ -117,7 +122,6 @@ namespace OpenSim.Server.Handlers.MapImage
} }
return FailureResult("Unexpected server error"); return FailureResult("Unexpected server error");
} }
private byte[] SuccessResult() private byte[] SuccessResult()

View File

@ -42,7 +42,8 @@ namespace OpenSim.Server.Handlers.MapImage
{ {
public class MapGetServiceConnector : ServiceConnector public class MapGetServiceConnector : ServiceConnector
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IMapImageService m_MapService; private IMapImageService m_MapService;
private string m_ConfigName = "MapImageService"; private string m_ConfigName = "MapImageService";
@ -69,7 +70,8 @@ namespace OpenSim.Server.Handlers.MapImage
class MapServerGetHandler : BaseStreamHandler class MapServerGetHandler : BaseStreamHandler
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IMapImageService m_MapService; private IMapImageService m_MapService;
public MapServerGetHandler(IMapImageService service) : public MapServerGetHandler(IMapImageService service) :

View File

@ -243,14 +243,13 @@ namespace OpenSim.Server.Handlers.Simulation
responsedata["int_response_code"] = HttpStatusCode.OK; responsedata["int_response_code"] = HttpStatusCode.OK;
responsedata["str_response_string"] = "OpenSim agent " + id.ToString(); responsedata["str_response_string"] = "OpenSim agent " + id.ToString();
m_log.Debug("[AGENT HANDLER]: Agent Released/Deleted."); m_log.DebugFormat("[AGENT HANDLER]: Agent {0} Released/Deleted from region {1}", id, regionID);
} }
protected virtual void ReleaseAgent(UUID regionID, UUID id) protected virtual void ReleaseAgent(UUID regionID, UUID id)
{ {
m_SimulationService.ReleaseAgent(regionID, id, ""); m_SimulationService.ReleaseAgent(regionID, id, "");
} }
} }
public class AgentPostHandler : BaseStreamHandler public class AgentPostHandler : BaseStreamHandler
@ -275,7 +274,7 @@ namespace OpenSim.Server.Handlers.Simulation
public override byte[] Handle(string path, Stream request, public override byte[] Handle(string path, Stream request,
OSHttpRequest httpRequest, OSHttpResponse httpResponse) OSHttpRequest httpRequest, OSHttpResponse httpResponse)
{ {
m_log.DebugFormat("[SIMULATION]: Stream handler called"); // m_log.DebugFormat("[SIMULATION]: Stream handler called");
Hashtable keysvals = new Hashtable(); Hashtable keysvals = new Hashtable();
Hashtable headervals = new Hashtable(); Hashtable headervals = new Hashtable();
@ -462,7 +461,7 @@ namespace OpenSim.Server.Handlers.Simulation
public override byte[] Handle(string path, Stream request, public override byte[] Handle(string path, Stream request,
OSHttpRequest httpRequest, OSHttpResponse httpResponse) OSHttpRequest httpRequest, OSHttpResponse httpResponse)
{ {
m_log.DebugFormat("[SIMULATION]: Stream handler called"); // m_log.DebugFormat("[SIMULATION]: Stream handler called");
Hashtable keysvals = new Hashtable(); Hashtable keysvals = new Hashtable();
Hashtable headervals = new Hashtable(); Hashtable headervals = new Hashtable();

View File

@ -129,7 +129,9 @@ namespace OpenSim.Services.Connectors
} }
else else
m_log.DebugFormat("[MAP IMAGE CONNECTOR]: RegisterRegion received null reply"); {
m_log.DebugFormat("[MAP IMAGE CONNECTOR]: Map post received null reply");
}
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -156,6 +156,7 @@ namespace OpenSim.Services.GridService
regionInfos.RegionID, regionInfos.RegionLocX, regionInfos.RegionLocY, scopeID); regionInfos.RegionID, regionInfos.RegionLocX, regionInfos.RegionLocY, scopeID);
return "Region overlaps another region"; return "Region overlaps another region";
} }
if ((region != null) && (region.RegionID == regionInfos.RegionID) && if ((region != null) && (region.RegionID == regionInfos.RegionID) &&
((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY))) ((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY)))
{ {
@ -236,18 +237,21 @@ namespace OpenSim.Services.GridService
} }
m_log.DebugFormat("[GRID SERVICE]: Region {0} ({1}) registered successfully at {2}-{3}", m_log.DebugFormat("[GRID SERVICE]: Region {0} ({1}) registered successfully at {2}-{3}",
regionInfos.RegionName, regionInfos.RegionID, regionInfos.RegionLocX, regionInfos.RegionLocY); regionInfos.RegionName, regionInfos.RegionID, regionInfos.RegionCoordX, regionInfos.RegionCoordY);
return String.Empty; return String.Empty;
} }
public bool DeregisterRegion(UUID regionID) public bool DeregisterRegion(UUID regionID)
{ {
m_log.DebugFormat("[GRID SERVICE]: Region {0} deregistered", regionID);
RegionData region = m_Database.Get(regionID, UUID.Zero); RegionData region = m_Database.Get(regionID, UUID.Zero);
if (region == null) if (region == null)
return false; return false;
m_log.DebugFormat(
"[GRID SERVICE]: Deregistering region {0} ({1}) at {2}-{3}",
region.RegionName, region.RegionID, region.coordX, region.coordY);
int flags = Convert.ToInt32(region.Data["flags"]); int flags = Convert.ToInt32(region.Data["flags"]);
if (!m_DeleteOnUnregister || (flags & (int)OpenSim.Data.RegionFlags.Persistent) != 0) if (!m_DeleteOnUnregister || (flags & (int)OpenSim.Data.RegionFlags.Persistent) != 0)
@ -292,7 +296,7 @@ namespace OpenSim.Services.GridService
} }
} }
m_log.DebugFormat("[GRID SERVICE]: region {0} has {1} neighbours", region.RegionName, rinfos.Count); // m_log.DebugFormat("[GRID SERVICE]: region {0} has {1} neighbours", region.RegionName, rinfos.Count);
} }
else else
{ {

View File

@ -103,9 +103,8 @@ namespace OpenSim.Services.Interfaces
int GetRegionFlags(UUID scopeID, UUID regionID); int GetRegionFlags(UUID scopeID, UUID regionID);
} }
public class GridRegion : Object public class GridRegion
{ {
/// <summary> /// <summary>
/// The port by which http communication occurs with the region /// The port by which http communication occurs with the region
/// </summary> /// </summary>
@ -149,6 +148,19 @@ namespace OpenSim.Services.Interfaces
protected IPEndPoint m_internalEndPoint; protected IPEndPoint m_internalEndPoint;
/// <summary>
/// The co-ordinate of this region.
/// </summary>
public int RegionCoordX { get { return RegionLocX / (int)Constants.RegionSize; } }
/// <summary>
/// The co-ordinate of this region
/// </summary>
public int RegionCoordY { get { return RegionLocY / (int)Constants.RegionSize; } }
/// <summary>
/// The location of this region in meters.
/// </summary>
public int RegionLocX public int RegionLocX
{ {
get { return m_regionLocX; } get { return m_regionLocX; }
@ -156,6 +168,9 @@ namespace OpenSim.Services.Interfaces
} }
protected int m_regionLocX; protected int m_regionLocX;
/// <summary>
/// The location of this region in meters.
/// </summary>
public int RegionLocY public int RegionLocY
{ {
get { return m_regionLocY; } get { return m_regionLocY; }
@ -417,8 +432,6 @@ namespace OpenSim.Services.Interfaces
if (kvp.ContainsKey("Token")) if (kvp.ContainsKey("Token"))
Token = kvp["Token"].ToString(); Token = kvp["Token"].ToString();
} }
} }
} }

View File

@ -138,6 +138,8 @@ namespace OpenSim.Services.MapImageService
public byte[] GetMapTile(string fileName, out string format) public byte[] GetMapTile(string fileName, out string format)
{ {
// m_log.DebugFormat("[MAP IMAGE SERVICE]: Getting map tile {0}", fileName);
format = ".jpg"; format = ".jpg";
string fullName = Path.Combine(m_TilesStoragePath, fileName); string fullName = Path.Combine(m_TilesStoragePath, fileName);
if (File.Exists(fullName)) if (File.Exists(fullName))
@ -206,7 +208,7 @@ namespace OpenSim.Services.MapImageService
private bool CreateTile(uint zoomLevel, int x, int y) private bool CreateTile(uint zoomLevel, int x, int y)
{ {
m_log.DebugFormat("[MAP IMAGE SERVICE]: Create tile for {0} {1}, zoom {2}", x, y, zoomLevel); // m_log.DebugFormat("[MAP IMAGE SERVICE]: Create tile for {0} {1}, zoom {2}", x, y, zoomLevel);
int prevWidth = (int)Math.Pow(2, (double)zoomLevel - 2); int prevWidth = (int)Math.Pow(2, (double)zoomLevel - 2);
int thisWidth = (int)Math.Pow(2, (double)zoomLevel - 1); int thisWidth = (int)Math.Pow(2, (double)zoomLevel - 1);

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -532,19 +532,17 @@
[Economy] [Economy]
;; The economy module is not enabled by default and there is no easy, ; The default economy module only implements just enough to allow free actions (transfer of objects, etc).
;; menu controlled way to do this. To enabled this module, insert ; There is no intention to implement anything further in core OpenSimulator.
;; economymodule = BetaGridLikeMoneyModule ; This functionality has to be provided by third party modules.
;; into the startup section (at the top of this file).
;; Then configure the options below as needed.
;; Enables selling things for $0 ;; Enables selling things for $0. Default is true.
; SellEnabled = "false" ; SellEnabled = true
;; Money Unit fee to upload textures, animations etc ;; Money Unit fee to upload textures, animations etc. Default is 0.
; PriceUpload = 0 ; PriceUpload = 0
;; Money Unit fee to create groups ;; Money Unit fee to create groups. Default is 0.
; PriceGroupCreate = 0 ; PriceGroupCreate = 0

View File

@ -332,6 +332,26 @@
DelayBeforeAppearanceSend = 2 DelayBeforeAppearanceSend = 2
[RegionReady]
; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled
enabled = true
; Channel on which to signal region readiness through a message
; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]"
; - the first field indicating whether this is an initial server startup
; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error)
; - the third field is a number indicating how many scripts failed to compile
; - "oar error" if supplied, provides the error message from the OAR load
channel_notify = -800
; - disallow logins while scripts are loading
; Instability can occur on regions with 100+ scripts if users enter before they have finished loading
login_disable = true
; - send an alert as json to a service
; alert_uri = "http://myappserver.net/my_handler/"
[SMTP] [SMTP]
enabled = false enabled = false
@ -489,6 +509,7 @@
; ;
;DisableFacelights = "false" ;DisableFacelights = "false"
[ClientStack.LindenCaps] [ClientStack.LindenCaps]
;; Long list of capabilities taken from ;; Long list of capabilities taken from
;; http://wiki.secondlife.com/wiki/Current_Sim_Capabilities ;; http://wiki.secondlife.com/wiki/Current_Sim_Capabilities
@ -1098,14 +1119,17 @@
[Economy] [Economy]
; These economy values get used in the BetaGridLikeMoneyModule. - This module is for demonstration only - ; These economy values get used in the BetaGridLikeMoneyModule. - This module is for demonstration only -
; The default economy module only implements just enough to allow free actions (transfer of objects, etc).
; There is no intention to implement anything further in core OpenSimulator.
; This functionality has to be provided by third party modules.
; Enables selling things for $0 ;; Enables selling things for $0. Default is true.
SellEnabled = "false" SellEnabled = true
; Money Unit fee to upload textures, animations etc ;; Money Unit fee to upload textures, animations etc. Default is 0.
PriceUpload = 0 PriceUpload = 0
; Money Unit fee to create groups ;; Money Unit fee to create groups. Default is 0.
PriceGroupCreate = 0 PriceGroupCreate = 0
; We don't really know what the rest of these values do. These get sent to the client ; We don't really know what the rest of these values do. These get sent to the client
@ -1301,24 +1325,6 @@
broker = "http://broker.place.com/{1}" broker = "http://broker.place.com/{1}"
[RegionReady]
; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled
; default is false
enabled = false
; Channel on which to signal region readiness through a message
; formatted as follows: "{server_startup|oar_file_load},{0|1},n,[oar error]"
; - the first field indicating whether this is an initial server startup
; - the second field is a number indicating whether the OAR file loaded ok (1 == ok, 0 == error)
; - the third field is a number indicating how many scripts failed to compile
; - "oar error" if supplied, provides the error message from the OAR load
channel_notify = -800
; - disallow logins while scripts are loading
login_disable = false
; - send an alert as json to a service
; alert_uri = "http://myappserver.net/my_handler/"
[MRM] [MRM]
; Enables the Mini Region Modules Script Engine. ; Enables the Mini Region Modules Script Engine.
; default is false ; default is false

View File

@ -237,7 +237,7 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
AllowRemoteSetLoginLevel = "false" AllowRemoteSetLoginLevel = "false"
; For V2 map ; For V2 map
; MapTileURL = "http://127.0.0.1:8002"; MapTileURL = "http://127.0.0.1:8002";
; If you run this login server behind a proxy, set this to true ; If you run this login server behind a proxy, set this to true
; HasProxy = false ; HasProxy = false

View File

@ -222,7 +222,7 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
AllowRemoteSetLoginLevel = "false" AllowRemoteSetLoginLevel = "false"
; For V2 map ; For V2 map
; MapTileURL = "http://127.0.0.1:8002"; MapTileURL = "http://127.0.0.1:8002";
; If you run this login server behind a proxy, set this to true ; If you run this login server behind a proxy, set this to true
; HasProxy = false ; HasProxy = false

View File

@ -1801,6 +1801,7 @@
<ReferencePath>../../../bin/</ReferencePath> <ReferencePath>../../../bin/</ReferencePath>
<Reference name="System"/> <Reference name="System"/>
<Reference name="System.Core"/>
<Reference name="System.Xml"/> <Reference name="System.Xml"/>
<Reference name="Mono.Addins" path="../../../bin/"/> <Reference name="Mono.Addins" path="../../../bin/"/>
<Reference name="OpenMetaverseTypes" path="../../../bin/"/> <Reference name="OpenMetaverseTypes" path="../../../bin/"/>
@ -2066,6 +2067,7 @@
<ReferencePath>../../../bin/</ReferencePath> <ReferencePath>../../../bin/</ReferencePath>
<Reference name="System"/> <Reference name="System"/>
<Reference name="System.Core"/>
<Reference name="System.Xml"/> <Reference name="System.Xml"/>
<Reference name="System.Data"/> <Reference name="System.Data"/>
<Reference name="OpenSim.Capabilities"/> <Reference name="OpenSim.Capabilities"/>
@ -2425,6 +2427,7 @@
<ReferencePath>../../../../bin/</ReferencePath> <ReferencePath>../../../../bin/</ReferencePath>
<Reference name="System"/> <Reference name="System"/>
<Reference name="System.Core"/>
<Reference name="System.Data"/> <Reference name="System.Data"/>
<Reference name="System.Web"/> <Reference name="System.Web"/>
<Reference name="System.Xml"/> <Reference name="System.Xml"/>