Merge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork
commit
b0f6c9330a
|
@ -258,10 +258,25 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
{
|
{
|
||||||
m_log.Info("[RADMIN]: Request to restart Region.");
|
m_log.Info("[RADMIN]: Request to restart Region.");
|
||||||
|
|
||||||
|
Scene rebootedScene = null;
|
||||||
|
bool restartAll = false;
|
||||||
|
|
||||||
|
IConfig startupConfig = m_configSource.Configs["Startup"];
|
||||||
|
if (startupConfig != null)
|
||||||
|
{
|
||||||
|
if (startupConfig.GetBoolean("InworldRestartShutsDown", false))
|
||||||
|
{
|
||||||
|
rebootedScene = m_application.SceneManager.CurrentOrFirstScene;
|
||||||
|
restartAll = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rebootedScene == null)
|
||||||
|
{
|
||||||
CheckRegionParams(requestData, responseData);
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
Scene rebootedScene = null;
|
|
||||||
GetSceneFromRegionParams(requestData, responseData, out rebootedScene);
|
GetSceneFromRegionParams(requestData, responseData, out rebootedScene);
|
||||||
|
}
|
||||||
|
|
||||||
IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>();
|
IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>();
|
||||||
|
|
||||||
|
@ -324,11 +339,20 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
notice = false;
|
notice = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (restartModule != null)
|
List<Scene> restartList;
|
||||||
|
|
||||||
|
if (restartAll)
|
||||||
|
restartList = m_application.SceneManager.Scenes;
|
||||||
|
else
|
||||||
|
restartList = new List<Scene>() { rebootedScene };
|
||||||
|
|
||||||
|
foreach (Scene s in m_application.SceneManager.Scenes)
|
||||||
{
|
{
|
||||||
|
restartModule = s.RequestModuleInterface<IRestartModule>();
|
||||||
|
if (restartModule != null)
|
||||||
restartModule.ScheduleRestart(UUID.Zero, message, times.ToArray(), notice);
|
restartModule.ScheduleRestart(UUID.Zero, message, times.ToArray(), notice);
|
||||||
responseData["success"] = true;
|
|
||||||
}
|
}
|
||||||
|
responseData["success"] = true;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -346,7 +346,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
/// All manipulation of this set has to occur under an m_entityUpdates.SyncRoot lock
|
/// All manipulation of this set has to occur under an m_entityUpdates.SyncRoot lock
|
||||||
///
|
///
|
||||||
/// </value>
|
/// </value>
|
||||||
protected HashSet<uint> m_killRecord;
|
// protected HashSet<uint> m_killRecord;
|
||||||
|
|
||||||
// protected HashSet<uint> m_attachmentsSent;
|
// protected HashSet<uint> m_attachmentsSent;
|
||||||
|
|
||||||
|
@ -472,7 +472,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
m_entityUpdates = new PriorityQueue(m_scene.Entities.Count);
|
m_entityUpdates = new PriorityQueue(m_scene.Entities.Count);
|
||||||
m_entityProps = new PriorityQueue(m_scene.Entities.Count);
|
m_entityProps = new PriorityQueue(m_scene.Entities.Count);
|
||||||
m_fullUpdateDataBlocksBuilder = new List<ObjectUpdatePacket.ObjectDataBlock>();
|
m_fullUpdateDataBlocksBuilder = new List<ObjectUpdatePacket.ObjectDataBlock>();
|
||||||
m_killRecord = new HashSet<uint>();
|
// m_killRecord = new HashSet<uint>();
|
||||||
// m_attachmentsSent = new HashSet<uint>();
|
// m_attachmentsSent = new HashSet<uint>();
|
||||||
|
|
||||||
m_assetService = m_scene.RequestModuleInterface<IAssetService>();
|
m_assetService = m_scene.RequestModuleInterface<IAssetService>();
|
||||||
|
@ -1574,17 +1574,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
// We MUST lock for both manipulating the kill record and sending the packet, in order to avoid a race
|
// We MUST lock for both manipulating the kill record and sending the packet, in order to avoid a race
|
||||||
// condition where a kill can be processed before an out-of-date update for the same object.
|
// condition where a kill can be processed before an out-of-date update for the same object.
|
||||||
// ProcessEntityUpdates() also takes the m_killRecord lock.
|
// ProcessEntityUpdates() also takes the m_killRecord lock.
|
||||||
lock (m_killRecord)
|
// lock (m_killRecord)
|
||||||
{
|
// {
|
||||||
foreach (uint localID in localIDs)
|
// foreach (uint localID in localIDs)
|
||||||
m_killRecord.Add(localID);
|
// m_killRecord.Add(localID);
|
||||||
|
|
||||||
// The throttle queue used here must match that being used for updates. Otherwise, there is a
|
// The throttle queue used here must match that being used for updates. Otherwise, there is a
|
||||||
// chance that a kill packet put on a separate queue will be sent to the client before an existing
|
// chance that a kill packet put on a separate queue will be sent to the client before an existing
|
||||||
// update packet on another queue. Receiving updates after kills results in unowned and undeletable
|
// update packet on another queue. Receiving updates after kills results in unowned and undeletable
|
||||||
// scene objects in a viewer until that viewer is relogged in.
|
// scene objects in a viewer until that viewer is relogged in.
|
||||||
OutPacket(kill, ThrottleOutPacketType.Task);
|
OutPacket(kill, ThrottleOutPacketType.Task);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3802,11 +3802,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
// If the object is an attachment we don't want it to be in the kill
|
// If the object is an attachment we don't want it to be in the kill
|
||||||
// record. Else attaching from inworld and subsequently dropping
|
// record. Else attaching from inworld and subsequently dropping
|
||||||
// it will no longer work.
|
// it will no longer work.
|
||||||
lock (m_killRecord)
|
// lock (m_killRecord)
|
||||||
{
|
// {
|
||||||
m_killRecord.Remove(part.LocalId);
|
// m_killRecord.Remove(part.LocalId);
|
||||||
m_killRecord.Remove(part.ParentGroup.RootPart.LocalId);
|
// m_killRecord.Remove(part.ParentGroup.RootPart.LocalId);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3822,13 +3822,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
// after the root prim has been deleted.
|
// after the root prim has been deleted.
|
||||||
//
|
//
|
||||||
// We ignore this for attachments because attaching something from inworld breaks unless we do.
|
// We ignore this for attachments because attaching something from inworld breaks unless we do.
|
||||||
lock (m_killRecord)
|
// lock (m_killRecord)
|
||||||
{
|
// {
|
||||||
if (m_killRecord.Contains(part.LocalId))
|
// if (m_killRecord.Contains(part.LocalId))
|
||||||
continue;
|
// continue;
|
||||||
if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId))
|
// if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId))
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (part.ParentGroup.IsAttachment && m_disableFacelights)
|
if (part.ParentGroup.IsAttachment && m_disableFacelights)
|
||||||
|
|
|
@ -867,7 +867,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
IsChildAgent = false;
|
IsChildAgent = false;
|
||||||
|
|
||||||
Animator.TrySetMovementAnimation("SIT");
|
// Animator.TrySetMovementAnimation("SIT");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -3252,9 +3252,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void changeAddImpulse(Vector3 impulse)
|
private void changeAddForce(Vector3 theforce)
|
||||||
{
|
{
|
||||||
m_forceacc += impulse *m_invTimeStep;
|
m_forceacc += theforce;
|
||||||
if (!m_isSelected)
|
if (!m_isSelected)
|
||||||
{
|
{
|
||||||
lock (this)
|
lock (this)
|
||||||
|
@ -3960,7 +3960,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case changes.AddForce:
|
case changes.AddForce:
|
||||||
changeAddImpulse((Vector3)arg);
|
changeAddForce((Vector3)arg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case changes.AddAngForce:
|
case changes.AddAngForce:
|
||||||
|
|
|
@ -111,6 +111,28 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
protected Timer m_ShoutSayTimer;
|
protected Timer m_ShoutSayTimer;
|
||||||
protected int m_SayShoutCount = 0;
|
protected int m_SayShoutCount = 0;
|
||||||
|
|
||||||
|
private Dictionary<string, string> MovementAnimationsForLSL =
|
||||||
|
new Dictionary<string, string> {
|
||||||
|
{"FLY", "Flying"},
|
||||||
|
{"FLYSLOW", "FlyingSlow"},
|
||||||
|
{"HOVER_UP", "Hovering Up"},
|
||||||
|
{"HOVER_DOWN", "Hovering Down"},
|
||||||
|
{"HOVER", "Hovering"},
|
||||||
|
{"LAND", "Landing"},
|
||||||
|
{"FALLDOWN", "Falling Down"},
|
||||||
|
{"PREJUMP", "PreJumping"},
|
||||||
|
{"JUMP", "Jumping"},
|
||||||
|
{"STANDUP", "Standing Up"},
|
||||||
|
{"SOFT_LAND", "Soft Landing"},
|
||||||
|
{"STAND", "Standing"},
|
||||||
|
{"CROUCHWALK", "CrouchWalking"},
|
||||||
|
{"RUN", "Running"},
|
||||||
|
{"WALK", "Walking"},
|
||||||
|
{"CROUCH", "Crouching"},
|
||||||
|
{"TURNLEFT", "Turning Left"},
|
||||||
|
{"TURNRIGHT", "Turning Right"}
|
||||||
|
};
|
||||||
|
|
||||||
public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, uint localID, UUID itemID)
|
public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, uint localID, UUID itemID)
|
||||||
{
|
{
|
||||||
m_ShoutSayTimer = new Timer(1000);
|
m_ShoutSayTimer = new Timer(1000);
|
||||||
|
@ -2523,7 +2545,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vel = m_host.Velocity;
|
vel = m_host.ParentGroup.RootPart.Velocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new LSL_Vector(vel.X, vel.Y, vel.Z);
|
return new LSL_Vector(vel.X, vel.Y, vel.Z);
|
||||||
|
@ -4820,14 +4842,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
|
|
||||||
if (m_host.RegionHandle == presence.RegionHandle)
|
if (m_host.RegionHandle == presence.RegionHandle)
|
||||||
{
|
{
|
||||||
Dictionary<UUID, string> animationstateNames = DefaultAvatarAnimations.AnimStateNames;
|
|
||||||
|
|
||||||
if (presence != null)
|
if (presence != null)
|
||||||
{
|
{
|
||||||
AnimationSet currentAnims = presence.Animator.Animations;
|
if (presence.SitGround)
|
||||||
string currentAnimationState = String.Empty;
|
return "Sitting on Ground";
|
||||||
if (animationstateNames.TryGetValue(currentAnims.DefaultAnimation.AnimID, out currentAnimationState))
|
if (presence.ParentID != 0 || presence.ParentUUID != UUID.Zero)
|
||||||
return currentAnimationState;
|
return "Sitting";
|
||||||
|
|
||||||
|
string movementAnimation = presence.Animator.CurrentMovementAnimation;
|
||||||
|
string lslMovementAnimation;
|
||||||
|
|
||||||
|
if (MovementAnimationsForLSL.TryGetValue(movementAnimation, out lslMovementAnimation))
|
||||||
|
return lslMovementAnimation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,6 +103,8 @@ namespace OpenSim.Services.AuthenticationService
|
||||||
if ((user.UserFlags & impersonateFlag) == 0)
|
if ((user.UserFlags & impersonateFlag) == 0)
|
||||||
return String.Empty;
|
return String.Empty;
|
||||||
|
|
||||||
|
m_log.DebugFormat("[PASS AUTH]: Attempting impersonation");
|
||||||
|
|
||||||
List<UserAccount> accounts = m_UserAccountService.GetUserAccountsWhere(UUID.Zero, "UserLevel >= 200");
|
List<UserAccount> accounts = m_UserAccountService.GetUserAccountsWhere(UUID.Zero, "UserLevel >= 200");
|
||||||
if (accounts == null || accounts.Count == 0)
|
if (accounts == null || accounts.Count == 0)
|
||||||
return String.Empty;
|
return String.Empty;
|
||||||
|
@ -117,6 +119,8 @@ namespace OpenSim.Services.AuthenticationService
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// m_log.DebugFormat("[PASS AUTH]: Trying {0}", data.PrincipalID);
|
||||||
|
|
||||||
hashed = Util.Md5Hash(password + ":" +
|
hashed = Util.Md5Hash(password + ":" +
|
||||||
data.Data["passwordSalt"].ToString());
|
data.Data["passwordSalt"].ToString());
|
||||||
|
|
||||||
|
@ -125,13 +129,12 @@ namespace OpenSim.Services.AuthenticationService
|
||||||
m_log.DebugFormat("[PASS AUTH]: {0} {1} impersonating {2}, proceeding with login", a.FirstName, a.LastName, principalID);
|
m_log.DebugFormat("[PASS AUTH]: {0} {1} impersonating {2}, proceeding with login", a.FirstName, a.LastName, principalID);
|
||||||
return GetToken(principalID, lifetime);
|
return GetToken(principalID, lifetime);
|
||||||
}
|
}
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
"[AUTH SERVICE]: Salted hash {0} of given password did not match salted hash of {1} for PrincipalID {2}. Authentication failure.",
|
// "[AUTH SERVICE]: Salted hash {0} of given password did not match salted hash of {1} for PrincipalID {2}. Authentication failure.",
|
||||||
hashed, data.Data["passwordHash"], principalID);
|
// hashed, data.Data["passwordHash"], data.PrincipalID);
|
||||||
return String.Empty;
|
// }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.DebugFormat("[PASS AUTH]: Impersonation of {0} failed", principalID);
|
m_log.DebugFormat("[PASS AUTH]: Impersonation of {0} failed", principalID);
|
||||||
|
|
Loading…
Reference in New Issue