* Fixed nebadon's UserServer crash bug from yesterday.
* Made Estate tools work for estate managers without needing to request admin status First * Added code to make the Simulator version to be reported in the About box of the clientThreadPoolClientBranch
parent
fc9bdb6c16
commit
07d0f558c4
|
@ -427,6 +427,8 @@ namespace OpenSim.Framework.UserManagement
|
|||
|
||||
if (userProfile != null)
|
||||
{
|
||||
// This line needs to be in side the above if statement or the UserServer will crash on some logouts.
|
||||
m_log.Info("[LOGOUT]: " + userProfile.username + " " + userProfile.surname + " from " + regionhandle + "(" + posx + "," + posy + "," + posz + ")");
|
||||
|
||||
userAgent = userProfile.currentAgent;
|
||||
if (userAgent != null)
|
||||
|
@ -434,7 +436,10 @@ namespace OpenSim.Framework.UserManagement
|
|||
userAgent.agentOnline = false;
|
||||
userAgent.logoutTime = Util.UnixTimeSinceEpoch();
|
||||
userAgent.sessionID = LLUUID.Zero;
|
||||
if (regionid != null)
|
||||
{
|
||||
userAgent.currentRegion = regionid;
|
||||
}
|
||||
userAgent.currentHandle = regionhandle;
|
||||
|
||||
userAgent.currentPos = currentPos;
|
||||
|
@ -446,9 +451,10 @@ namespace OpenSim.Framework.UserManagement
|
|||
}
|
||||
else
|
||||
{
|
||||
m_log.Info("[LOGOUT]: didn't save logout position, currentAgent: " + userAgent.ToString() );
|
||||
// If currentagent is null, we can't reference it here or the UserServer crashes!
|
||||
m_log.Info("[LOGOUT]: didn't save logout position: " + userid.ToString());
|
||||
}
|
||||
m_log.Info("[LOGOUT]: " + userProfile.username + " " + userProfile.surname + " from " + regionhandle + "(" + posx + "," + posy + "," + posz + ")" );
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -52,6 +52,8 @@ namespace OpenSim.Framework
|
|||
void Restart(int seconds);
|
||||
bool OtherRegionUp(RegionInfo thisRegion);
|
||||
|
||||
string GetSimulatorVersion();
|
||||
|
||||
RegionInfo RegionInfo { get; }
|
||||
uint NextLocalId { get; }
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ namespace OpenSim.Region.ClientStack
|
|||
private readonly uint m_circuitCode;
|
||||
private int m_moneyBalance;
|
||||
|
||||
private readonly byte[] m_channelVersion = new byte[] { 0x00 }; // Dummy value needed by libSL
|
||||
private byte[] m_channelVersion = Helpers.StringToField("OpenSimulator 0.5"); // Dummy value needed by libSL
|
||||
|
||||
/* protected variables */
|
||||
|
||||
|
@ -196,6 +196,8 @@ namespace OpenSim.Region.ClientStack
|
|||
{
|
||||
m_moneyBalance = 1000;
|
||||
|
||||
m_channelVersion = Helpers.StringToField(scene.GetSimulatorVersion());
|
||||
|
||||
m_scene = scene;
|
||||
m_assetCache = assetCache;
|
||||
|
||||
|
@ -609,8 +611,16 @@ namespace OpenSim.Region.ClientStack
|
|||
{
|
||||
RegionHandshakePacket handshake = (RegionHandshakePacket)PacketPool.Instance.GetPacket(PacketType.RegionHandshake);
|
||||
|
||||
bool estatemanager = false;
|
||||
LLUUID[] EstateManagers = regionInfo.EstateSettings.estateManagers;
|
||||
for (int i = 0; i < EstateManagers.Length; i++)
|
||||
{
|
||||
if (EstateManagers[i] == AgentId)
|
||||
estatemanager = true;
|
||||
}
|
||||
|
||||
handshake.RegionInfo.BillableFactor = regionInfo.EstateSettings.billableFactor;
|
||||
handshake.RegionInfo.IsEstateManager = false;
|
||||
handshake.RegionInfo.IsEstateManager = estatemanager;
|
||||
handshake.RegionInfo.TerrainHeightRange00 = regionInfo.EstateSettings.terrainHeightRange0;
|
||||
handshake.RegionInfo.TerrainHeightRange01 = regionInfo.EstateSettings.terrainHeightRange1;
|
||||
handshake.RegionInfo.TerrainHeightRange10 = regionInfo.EstateSettings.terrainHeightRange2;
|
||||
|
|
|
@ -82,6 +82,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
private readonly Timer m_restartTimer = new Timer(15000); // Wait before firing
|
||||
private int m_incrementsof15seconds = 0;
|
||||
|
||||
public string m_simulatorVersion = "OpenSimulator 0.5";
|
||||
|
||||
protected ModuleLoader m_moduleLoader;
|
||||
protected StorageManager m_storageManager;
|
||||
protected AgentCircuitManager m_authenticateHandler;
|
||||
|
@ -300,6 +302,22 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
m_statsReporter = new SimStatsReporter(regInfo);
|
||||
m_statsReporter.OnSendStatsResult += SendSimStatsPackets;
|
||||
string OSString = "";
|
||||
|
||||
if (System.Environment.OSVersion.Platform != PlatformID.Unix)
|
||||
{
|
||||
OSString = System.Environment.OSVersion.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
OSString = Util.ReadEtcIssue();
|
||||
}
|
||||
if (OSString.Length > 45)
|
||||
{
|
||||
OSString = OSString.Substring(0,45);
|
||||
}
|
||||
|
||||
m_simulatorVersion = "OpenSimulator v0.5-SVN on " + OSString + " ChilTasks:" + m_sendTasksToChild.ToString() + " PhysPrim:" + m_physicalPrim.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -313,6 +331,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_eventManager.OnPermissionError += SendPermissionAlert;
|
||||
}
|
||||
|
||||
public override string GetSimulatorVersion()
|
||||
{
|
||||
return m_simulatorVersion;
|
||||
}
|
||||
|
||||
public override bool OtherRegionUp(RegionInfo otherRegion)
|
||||
{
|
||||
// Another region is up.
|
||||
|
|
|
@ -167,6 +167,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
public abstract bool OtherRegionUp(RegionInfo thisRegion);
|
||||
|
||||
public virtual string GetSimulatorVersion()
|
||||
{
|
||||
return "OpenSimulator v0.5 SVN";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Shutdown
|
||||
|
|
Loading…
Reference in New Issue