Compare commits

...

7 Commits
0.8-rc3 ... 0.8

7 changed files with 48 additions and 17 deletions

View File

@@ -45,6 +45,7 @@ using OpenSim.Framework.Monitoring;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
using Timer=System.Timers.Timer; using Timer=System.Timers.Timer;
using Nini.Config;
namespace OpenSim.Framework.Servers namespace OpenSim.Framework.Servers
{ {
@@ -59,6 +60,7 @@ namespace OpenSim.Framework.Servers
/// This will control a periodic log printout of the current 'show stats' (if they are active) for this /// This will control a periodic log printout of the current 'show stats' (if they are active) for this
/// server. /// server.
/// </summary> /// </summary>
private int m_periodDiagnosticTimerMS = 60 * 60 * 1000;
private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000); private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000);
/// <summary> /// <summary>
@@ -77,8 +79,6 @@ namespace OpenSim.Framework.Servers
// Random uuid for private data // Random uuid for private data
m_osSecret = UUID.Random().ToString(); m_osSecret = UUID.Random().ToString();
m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics);
m_periodicDiagnosticsTimer.Enabled = true;
} }
/// <summary> /// <summary>
@@ -89,6 +89,16 @@ namespace OpenSim.Framework.Servers
StatsManager.SimExtraStats = new SimExtraStatsCollector(); StatsManager.SimExtraStats = new SimExtraStatsCollector();
RegisterCommonCommands(); RegisterCommonCommands();
RegisterCommonComponents(Config); RegisterCommonComponents(Config);
IConfig startupConfig = Config.Configs["Startup"];
int logShowStatsSeconds = startupConfig.GetInt("LogShowStatsSeconds", m_periodDiagnosticTimerMS / 1000);
m_periodDiagnosticTimerMS = logShowStatsSeconds * 1000;
m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics);
if (m_periodDiagnosticTimerMS != 0)
{
m_periodicDiagnosticsTimer.Interval = m_periodDiagnosticTimerMS;
m_periodicDiagnosticsTimer.Enabled = true;
}
} }
protected override void ShutdownSpecific() protected override void ShutdownSpecific()

View File

@@ -30,7 +30,7 @@ namespace OpenSim
public class VersionInfo public class VersionInfo
{ {
private const string VERSION_NUMBER = "0.8"; private const string VERSION_NUMBER = "0.8";
private const Flavour VERSION_FLAVOUR = Flavour.RC3; private const Flavour VERSION_FLAVOUR = Flavour.Release;
public enum Flavour public enum Flavour
{ {

View File

@@ -63,8 +63,7 @@ namespace OpenSim.Region.ClientStack.Linden
public List<UUID> folders; public List<UUID> folders;
} }
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary> /// <summary>
/// Control whether requests will be processed asynchronously. /// Control whether requests will be processed asynchronously.
@@ -438,7 +437,18 @@ namespace OpenSim.Region.ClientStack.Linden
aPollRequest poolreq = m_queue.Dequeue(); aPollRequest poolreq = m_queue.Dequeue();
if (poolreq != null && poolreq.thepoll != null) if (poolreq != null && poolreq.thepoll != null)
poolreq.thepoll.Process(poolreq); {
try
{
poolreq.thepoll.Process(poolreq);
}
catch (Exception e)
{
m_log.ErrorFormat(
"[INVENTORY]: Failed to process queued inventory request {0} for {1} in {2}. Exception {3}",
poolreq.reqID, poolreq.presence != null ? poolreq.presence.Name : "unknown", Scene.Name, e);
}
}
} }
} }
} }

View File

@@ -244,7 +244,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (inventoryURL != null && inventoryURL != string.Empty) if (inventoryURL != null && inventoryURL != string.Empty)
{ {
inventoryURL = inventoryURL.Trim(new char[] { '/' }); inventoryURL = inventoryURL.Trim(new char[] { '/' });
m_InventoryURLs.Add(userID, inventoryURL); m_InventoryURLs[userID] = inventoryURL;
m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Added {0} to the cache of inventory URLs", inventoryURL); m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Added {0} to the cache of inventory URLs", inventoryURL);
return; return;
} }

View File

@@ -1985,15 +1985,17 @@ namespace OpenSim.Region.CoreModules.World.Land
telehub = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject); telehub = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject);
// Can the user set home here? // Can the user set home here?
if (// (a) gods and land managers can set home if (// Required: local user; foreign users cannot set home
m_scene.Permissions.IsAdministrator(remoteClient.AgentId) || m_scene.UserManagementModule.IsLocalGridUser(remoteClient.AgentId) &&
m_scene.Permissions.IsGod(remoteClient.AgentId) || (// (a) gods and land managers can set home
// (b) land owners can set home m_scene.Permissions.IsAdministrator(remoteClient.AgentId) ||
remoteClient.AgentId == land.LandData.OwnerID || m_scene.Permissions.IsGod(remoteClient.AgentId) ||
// (c) members of the land-associated group in roles that can set home // (b) land owners can set home
((gpowers & (ulong)GroupPowers.AllowSetHome) == (ulong)GroupPowers.AllowSetHome) || remoteClient.AgentId == land.LandData.OwnerID ||
// (d) parcels with telehubs can be the home of anyone // (c) members of the land-associated group in roles that can set home
(telehub != null && land.ContainsPoint((int)telehub.AbsolutePosition.X, (int)telehub.AbsolutePosition.Y))) ((gpowers & (ulong)GroupPowers.AllowSetHome) == (ulong)GroupPowers.AllowSetHome) ||
// (d) parcels with telehubs can be the home of anyone
(telehub != null && land.ContainsPoint((int)telehub.AbsolutePosition.X, (int)telehub.AbsolutePosition.Y))))
{ {
if (m_scene.GridUserService.SetHome(remoteClient.AgentId.ToString(), land.RegionUUID, position, lookAt)) if (m_scene.GridUserService.SetHome(remoteClient.AgentId.ToString(), land.RegionUUID, position, lookAt))
// FUBAR ALERT: this needs to be "Home position set." so the viewer saves a home-screenshot. // FUBAR ALERT: this needs to be "Home position set." so the viewer saves a home-screenshot.

View File

@@ -216,7 +216,12 @@ namespace OpenSim.Region.OptionalModules.Materials
GetLegacyStoredMaterialsInPart(part); GetLegacyStoredMaterialsInPart(part);
GetStoredMaterialInFace(part, te.DefaultTexture); if (te.DefaultTexture != null)
GetStoredMaterialInFace(part, te.DefaultTexture);
else
m_log.WarnFormat(
"[Materials]: Default texture for part {0} (part of object {1)) in {2} unexpectedly null. Ignoring.",
part.Name, part.ParentGroup.Name, m_scene.Name);
foreach (Primitive.TextureEntryFace face in te.FaceTextures) foreach (Primitive.TextureEntryFace face in te.FaceTextures)
{ {

View File

@@ -269,6 +269,10 @@
; PreJump is an additional animation state, but it probably ; PreJump is an additional animation state, but it probably
; won't look right until the physics engine supports it ; won't look right until the physics engine supports it
; (i.e delays takeoff for a moment) ; (i.e delays takeoff for a moment)
; Simulator statistics are output to the console periodically at debug level INFO.
; Setting this to zero disables this output.
; LogShowStatsSeconds = 3600
; Simulator Stats URI ; Simulator Stats URI
; Enable JSON simulator data by setting a URI name (case sensitive) ; Enable JSON simulator data by setting a URI name (case sensitive)