Merge branch 'master' into httptests
commit
16a8e166ff
|
@ -457,6 +457,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object m_originRegionIDAccessLock = new object();
|
private object m_originRegionIDAccessLock = new object();
|
||||||
|
|
||||||
|
|
||||||
|
private AutoResetEvent m_updateAgentReceivedAfterTransferEvent = new AutoResetEvent(false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used by the entity transfer module to signal when the presence should not be closed because a subsequent
|
/// Used by the entity transfer module to signal when the presence should not be closed because a subsequent
|
||||||
/// teleport is reusing the connection.
|
/// teleport is reusing the connection.
|
||||||
|
@ -1950,31 +1953,33 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// (which triggers Scene.IncomingUpdateChildAgent(AgentData cAgentData) here in the destination,
|
// (which triggers Scene.IncomingUpdateChildAgent(AgentData cAgentData) here in the destination,
|
||||||
// m_originRegionID is UUID.Zero; after, it's non-Zero. The CompleteMovement sequence initiated from the
|
// m_originRegionID is UUID.Zero; after, it's non-Zero. The CompleteMovement sequence initiated from the
|
||||||
// viewer (in turn triggered by the source region sending it a TeleportFinish event) waits until it's non-zero
|
// viewer (in turn triggered by the source region sending it a TeleportFinish event) waits until it's non-zero
|
||||||
// m_updateAgentReceivedAfterTransferEvent.WaitOne(10000);
|
|
||||||
int count = 50;
|
try
|
||||||
|
{
|
||||||
|
if(m_updateAgentReceivedAfterTransferEvent.WaitOne(10000))
|
||||||
|
{
|
||||||
UUID originID = UUID.Zero;
|
UUID originID = UUID.Zero;
|
||||||
|
|
||||||
lock (m_originRegionIDAccessLock)
|
lock (m_originRegionIDAccessLock)
|
||||||
originID = m_originRegionID;
|
originID = m_originRegionID;
|
||||||
|
|
||||||
while (originID.Equals(UUID.Zero) && count-- > 0)
|
|
||||||
{
|
|
||||||
lock (m_originRegionIDAccessLock)
|
|
||||||
originID = m_originRegionID;
|
|
||||||
|
|
||||||
m_log.DebugFormat("[SCENE PRESENCE]: Agent {0} waiting for update in {1}", client.Name, Scene.Name);
|
|
||||||
Thread.Sleep(200);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (originID.Equals(UUID.Zero))
|
if (originID.Equals(UUID.Zero))
|
||||||
{
|
{
|
||||||
// Movement into region will fail
|
// Movement into region will fail
|
||||||
m_log.WarnFormat("[SCENE PRESENCE]: Update agent {0} never arrived in {1}", client.Name, Scene.Name);
|
m_log.WarnFormat("[SCENE PRESENCE]: Update agent {0} at {1} got invalid origin region id ", client.Name, Scene.Name);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[SCENE PRESENCE]: Update agent {0} at {1} did not receive agent update ", client.Name, Scene.Name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public void RotateToLookAt(Vector3 lookAt)
|
public void RotateToLookAt(Vector3 lookAt)
|
||||||
{
|
{
|
||||||
|
@ -2283,6 +2288,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(gotCrossUpdate)
|
||||||
|
{
|
||||||
|
if(IgnoredControls != ScriptControlled.CONTROL_ZERO)
|
||||||
|
ControllingClient.SendTakeControls((int)IgnoredControls, false, true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
m_log.DebugFormat("[CompleteMovement] attachments: {0}ms", Util.EnvironmentTickCountSubtract(ts));
|
m_log.DebugFormat("[CompleteMovement] attachments: {0}ms", Util.EnvironmentTickCountSubtract(ts));
|
||||||
if (openChildAgents)
|
if (openChildAgents)
|
||||||
{
|
{
|
||||||
|
@ -4574,7 +4586,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CopyFrom(cAgentData);
|
CopyFrom(cAgentData);
|
||||||
|
m_updateAgentReceivedAfterTransferEvent.Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Vector3 marker = new Vector3(-1f, -1f, -1f);
|
private static Vector3 marker = new Vector3(-1f, -1f, -1f);
|
||||||
|
@ -4787,6 +4799,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
AddToPhysicalScene(isFlying);
|
AddToPhysicalScene(isFlying);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (Scene.AttachmentsModule != null)
|
||||||
|
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
lock (scriptedcontrols)
|
lock (scriptedcontrols)
|
||||||
|
@ -4794,6 +4810,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (cAgent.Controllers != null)
|
if (cAgent.Controllers != null)
|
||||||
{
|
{
|
||||||
scriptedcontrols.Clear();
|
scriptedcontrols.Clear();
|
||||||
|
IgnoredControls = ScriptControlled.CONTROL_ZERO;
|
||||||
|
|
||||||
foreach (ControllerData c in cAgent.Controllers)
|
foreach (ControllerData c in cAgent.Controllers)
|
||||||
{
|
{
|
||||||
|
@ -4804,6 +4821,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
sc.eventControls = (ScriptControlled)c.EventControls;
|
sc.eventControls = (ScriptControlled)c.EventControls;
|
||||||
|
|
||||||
scriptedcontrols[sc.itemID] = sc;
|
scriptedcontrols[sc.itemID] = sc;
|
||||||
|
IgnoredControls |= sc.ignoreControls; // this is not correct, aparently only last applied should count
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4824,8 +4842,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (cAgent.MotionState != 0)
|
if (cAgent.MotionState != 0)
|
||||||
Animator.currentControlState = (ScenePresenceAnimator.motionControlStates) cAgent.MotionState;
|
Animator.currentControlState = (ScenePresenceAnimator.motionControlStates) cAgent.MotionState;
|
||||||
|
|
||||||
if (Scene.AttachmentsModule != null)
|
|
||||||
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
|
|
||||||
|
|
||||||
crossingFlags = cAgent.CrossingFlags;
|
crossingFlags = cAgent.CrossingFlags;
|
||||||
gotCrossUpdate = (crossingFlags != 0);
|
gotCrossUpdate = (crossingFlags != 0);
|
||||||
|
@ -5108,6 +5124,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
ControllingClient = null;
|
ControllingClient = null;
|
||||||
LifecycleState = ScenePresenceState.Removed;
|
LifecycleState = ScenePresenceState.Removed;
|
||||||
IsDeleted = true;
|
IsDeleted = true;
|
||||||
|
m_updateAgentReceivedAfterTransferEvent.Dispose();
|
||||||
|
m_updateAgentReceivedAfterTransferEvent = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddAttachment(SceneObjectGroup gobj)
|
public void AddAttachment(SceneObjectGroup gobj)
|
||||||
|
|
|
@ -3593,7 +3593,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
|
|
||||||
public int osGetSimulatorMemoryKB()
|
public int osGetSimulatorMemoryKB()
|
||||||
{
|
{
|
||||||
CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemory");
|
CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemoryKB");
|
||||||
|
|
||||||
long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
|
long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
|
||||||
|
|
||||||
|
|
|
@ -2061,7 +2061,7 @@
|
||||||
;MessagingEnabled = true
|
;MessagingEnabled = true
|
||||||
|
|
||||||
; Experimental option to only message cached online users rather than all users
|
; Experimental option to only message cached online users rather than all users
|
||||||
; Should make large group with few online members messaging faster, as the expense of more calls to ROBUST presence service
|
; Should make large group with few online members messaging faster, at the expense of more calls to ROBUST presence service
|
||||||
; (Flotsam groups only; in V2 this is always on)
|
; (Flotsam groups only; in V2 this is always on)
|
||||||
MessageOnlineUsersOnly = false
|
MessageOnlineUsersOnly = false
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,7 @@
|
||||||
Allow_osGetNumberOfAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
Allow_osGetNumberOfAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
||||||
Allow_osGetRegionStats = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
Allow_osGetRegionStats = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
||||||
Allow_osGetSimulatorMemory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
Allow_osGetSimulatorMemory = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
||||||
|
Allow_osGetSimulatorMemoryKB = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
||||||
Allow_osMessageAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
Allow_osMessageAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
||||||
Allow_osSetSpeed = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
Allow_osSetSpeed = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
|
||||||
|
|
||||||
|
@ -221,28 +222,28 @@
|
||||||
Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable)
|
Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable)
|
||||||
|
|
||||||
; available functions out of Threat level control (for reference only)
|
; available functions out of Threat level control (for reference only)
|
||||||
; Allow_osClearInertia = true
|
|
||||||
; Allow_osCheckODE = true
|
; Allow_osCheckODE = true
|
||||||
|
; Allow_osClearInertia = true
|
||||||
; Allow_osCollisionSound = true
|
; Allow_osCollisionSound = true
|
||||||
; Allow_osDrawEllipse = true
|
; Allow_osDrawEllipse = true
|
||||||
; Allow_osDrawFilledEllipse = true
|
; Allow_osDrawFilledEllipse = true
|
||||||
; Allow_osDrawFilledPolygon = true
|
; Allow_osDrawFilledPolygon = true
|
||||||
; Allow_osDrawFilledRectangle = true
|
; Allow_osDrawFilledRectangle = true
|
||||||
; Allow_osDrawResetTransform = true
|
|
||||||
; Allow_osDrawRotationTransform = true
|
|
||||||
; Allow_osDrawScaleTransform = true
|
|
||||||
; Allow_osDrawTranslationTransform = true
|
|
||||||
; Allow_osDrawImage = true
|
; Allow_osDrawImage = true
|
||||||
; Allow_osDrawLine = true
|
; Allow_osDrawLine = true
|
||||||
; Allow_osDrawPolygon = true
|
; Allow_osDrawPolygon = true
|
||||||
; Allow_osDrawRectangle = true
|
; Allow_osDrawRectangle = true
|
||||||
|
; Allow_osDrawResetTransform = true
|
||||||
|
; Allow_osDrawRotationTransform = true
|
||||||
|
; Allow_osDrawScaleTransform = true
|
||||||
; Allow_osDrawText = true
|
; Allow_osDrawText = true
|
||||||
|
; Allow_osDrawTranslationTransform = true
|
||||||
; Allow_osGetCurrentSunHour = true
|
; Allow_osGetCurrentSunHour = true
|
||||||
; Allow_osGetPhysicsEngineName = true
|
|
||||||
; Allow_osGetInertiaData = true
|
; Allow_osGetInertiaData = true
|
||||||
; Allow_osGetInventoryDesc = true
|
; Allow_osGetInventoryDesc = true
|
||||||
; Allow_osGetLinkNumber = true
|
; Allow_osGetLinkNumber = true
|
||||||
; Allow_osGetMapTexture = true
|
; Allow_osGetMapTexture = true
|
||||||
|
; Allow_osGetPhysicsEngineName = true
|
||||||
; Allow_osGetRegionSize = true
|
; Allow_osGetRegionSize = true
|
||||||
; Allow_osGetSunParam = true
|
; Allow_osGetSunParam = true
|
||||||
; Allow_osGetTerrainHeight = true
|
; Allow_osGetTerrainHeight = true
|
||||||
|
@ -253,12 +254,12 @@
|
||||||
; Allow_osMax = true
|
; Allow_osMax = true
|
||||||
; Allow_osMin = true
|
; Allow_osMin = true
|
||||||
; Allow_osMovePen = true
|
; Allow_osMovePen = true
|
||||||
|
; Allow_osSetFontName = true
|
||||||
|
; Allow_osSetFontSize = true
|
||||||
; Allow_osSetInertia = true
|
; Allow_osSetInertia = true
|
||||||
; Allow_osSetInertiaAsBox = true
|
; Allow_osSetInertiaAsBox = true
|
||||||
; Allow_osSetInertiaAsSphere = true
|
; Allow_osSetInertiaAsSphere = true
|
||||||
; Allow_osSetInertiaAsCylinder = true
|
; Allow_osSetInertiaAsCylinder = true
|
||||||
; Allow_osSetFontName = true
|
|
||||||
; Allow_osSetFontSize = true
|
|
||||||
; Allow_osSetPenCap = true
|
; Allow_osSetPenCap = true
|
||||||
; Allow_osSetPenColor = true
|
; Allow_osSetPenColor = true
|
||||||
; Allow_osSetPenSize = true
|
; Allow_osSetPenSize = true
|
||||||
|
|
Loading…
Reference in New Issue