diff --git a/OpenSim/Framework/UserManager/LoginService.cs b/OpenSim/Framework/UserManager/LoginService.cs index 483665e25f..8e7cf801b8 100644 --- a/OpenSim/Framework/UserManager/LoginService.cs +++ b/OpenSim/Framework/UserManager/LoginService.cs @@ -44,18 +44,15 @@ namespace OpenSim.Framework.UserManagement bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && requestData.Contains("passwd")); bool GoodLogin = false; - string firstname = ""; - string lastname = ""; - string passwd = ""; UserProfileData userProfile; LoginResponse logResponse = new LoginResponse(); if (GoodXML) { - firstname = (string)requestData["first"]; - lastname = (string)requestData["last"]; - passwd = (string)requestData["passwd"]; + string firstname = (string)requestData["first"]; + string lastname = (string)requestData["last"]; + string passwd = (string)requestData["passwd"]; userProfile = GetTheUser(firstname, lastname); if (userProfile == null) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 97a4ae1560..cff832ead5 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -1363,5 +1363,25 @@ namespace OpenSim.Region.Environment.Scenes base.Close(); } + + internal bool TryGetAvatarByName(string avatarName, out ScenePresence avatar) + { + foreach( ScenePresence presence in m_scenePresences.Values ) + { + if( !presence.IsChildAgent ) + { + string name = presence.ControllingClient.FirstName + " " + presence.ControllingClient.LastName; + + if( String.Compare( avatarName, name, true ) == 0 ) + { + avatar = presence; + return true; + } + } + } + + avatar = null; + return false; + } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs index 79fdff77ab..196976cef0 100644 --- a/OpenSim/Region/Environment/Scenes/SceneManager.cs +++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs @@ -233,5 +233,19 @@ namespace OpenSim.Region.Environment.Scenes m_localScenes.Remove(scene); scene.Close(); } + + public bool TryGetAvatarByName(string avatarName, out ScenePresence avatar) + { + foreach (Scene scene in m_localScenes) + { + if (scene.TryGetAvatarByName(avatarName, out avatar)) + { + return true; + } + } + + avatar = null; + return false; + } } } \ No newline at end of file