Merge branch 'master' into httptests

httptests
UbitUmarov 2017-10-26 19:01:16 +01:00
commit 16a8e166ff
4 changed files with 72 additions and 53 deletions

View File

@ -457,6 +457,9 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
private object m_originRegionIDAccessLock = new object();
private AutoResetEvent m_updateAgentReceivedAfterTransferEvent = new AutoResetEvent(false);
/// <summary>
/// Used by the entity transfer module to signal when the presence should not be closed because a subsequent
/// teleport is reusing the connection.
@ -1950,31 +1953,33 @@ namespace OpenSim.Region.Framework.Scenes
// (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
// 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;
lock (m_originRegionIDAccessLock)
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))
{
// 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 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)
{
@ -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));
if (openChildAgents)
{
@ -4574,7 +4586,7 @@ namespace OpenSim.Region.Framework.Scenes
return;
CopyFrom(cAgentData);
m_updateAgentReceivedAfterTransferEvent.Set();
}
private static Vector3 marker = new Vector3(-1f, -1f, -1f);
@ -4787,6 +4799,10 @@ namespace OpenSim.Region.Framework.Scenes
AddToPhysicalScene(isFlying);
}
*/
if (Scene.AttachmentsModule != null)
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
try
{
lock (scriptedcontrols)
@ -4794,6 +4810,7 @@ namespace OpenSim.Region.Framework.Scenes
if (cAgent.Controllers != null)
{
scriptedcontrols.Clear();
IgnoredControls = ScriptControlled.CONTROL_ZERO;
foreach (ControllerData c in cAgent.Controllers)
{
@ -4804,6 +4821,7 @@ namespace OpenSim.Region.Framework.Scenes
sc.eventControls = (ScriptControlled)c.EventControls;
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)
Animator.currentControlState = (ScenePresenceAnimator.motionControlStates) cAgent.MotionState;
if (Scene.AttachmentsModule != null)
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
crossingFlags = cAgent.CrossingFlags;
gotCrossUpdate = (crossingFlags != 0);
@ -5108,6 +5124,8 @@ namespace OpenSim.Region.Framework.Scenes
ControllingClient = null;
LifecycleState = ScenePresenceState.Removed;
IsDeleted = true;
m_updateAgentReceivedAfterTransferEvent.Dispose();
m_updateAgentReceivedAfterTransferEvent = null;
}
public void AddAttachment(SceneObjectGroup gobj)

View File

@ -3593,7 +3593,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public int osGetSimulatorMemoryKB()
{
CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemory");
CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemoryKB");
long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;

View File

@ -2061,7 +2061,7 @@
;MessagingEnabled = true
; 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)
MessageOnlineUsersOnly = false

View File

@ -138,6 +138,7 @@
Allow_osGetNumberOfAttachments = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
Allow_osGetRegionStats = ${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_osSetSpeed = ${XEngine|osslParcelO}ESTATE_MANAGER,ESTATE_OWNER
@ -221,28 +222,28 @@
Allow_osGetAgentIP = true ; always restricted to Administrators (true or false to disable)
; available functions out of Threat level control (for reference only)
; Allow_osClearInertia = true
; Allow_osCheckODE = true
; Allow_osClearInertia = true
; Allow_osCollisionSound = true
; Allow_osDrawEllipse = true
; Allow_osDrawFilledEllipse = true
; Allow_osDrawFilledPolygon = true
; Allow_osDrawFilledRectangle = true
; Allow_osDrawResetTransform = true
; Allow_osDrawRotationTransform = true
; Allow_osDrawScaleTransform = true
; Allow_osDrawTranslationTransform = true
; Allow_osDrawImage = true
; Allow_osDrawLine = true
; Allow_osDrawPolygon = true
; Allow_osDrawRectangle = true
; Allow_osDrawResetTransform = true
; Allow_osDrawRotationTransform = true
; Allow_osDrawScaleTransform = true
; Allow_osDrawText = true
; Allow_osDrawTranslationTransform = true
; Allow_osGetCurrentSunHour = true
; Allow_osGetPhysicsEngineName = true
; Allow_osGetInertiaData = true
; Allow_osGetInventoryDesc = true
; Allow_osGetLinkNumber = true
; Allow_osGetMapTexture = true
; Allow_osGetPhysicsEngineName = true
; Allow_osGetRegionSize = true
; Allow_osGetSunParam = true
; Allow_osGetTerrainHeight = true
@ -253,12 +254,12 @@
; Allow_osMax = true
; Allow_osMin = true
; Allow_osMovePen = true
; Allow_osSetFontName = true
; Allow_osSetFontSize = true
; Allow_osSetInertia = true
; Allow_osSetInertiaAsBox = true
; Allow_osSetInertiaAsSphere = true
; Allow_osSetInertiaAsCylinder = true
; Allow_osSetFontName = true
; Allow_osSetFontSize = true
; Allow_osSetPenCap = true
; Allow_osSetPenColor = true
; Allow_osSetPenSize = true