From a9dde515ba7d35b6069a3b2cd8b66bb72b007801 Mon Sep 17 00:00:00 2001
From: MW
Date: Fri, 22 Jun 2007 18:28:49 +0000
Subject: SandBox mode login now shares a base class with the grid mode user
server. To allow people to login without creating accounts first in sandbox
mode anytime a login request is received without a matching account already
being in the database, a new account will be made. (also in sandbox mode,
passwords aren't currently used).
---
OpenSim/Examples/SimpleApp/Program.cs | 2 +-
.../CommunicationsLocal.cs | 11 +-
.../LocalUserServices.cs | 96 +++++++++++++++--
OpenSim/OpenSim.Region/Scenes/Scene.cs | 4 +-
.../OpenSim.Region/Scenes/ScenePresence.Body.cs | 6 +-
OpenSim/OpenSim.RegionServer/ClientView.API.cs | 8 ++
OpenSim/OpenSim.RegionServer/NetworkServersInfo.cs | 120 ---------------------
.../OpenSim.RegionServer.csproj | 3 -
.../OpenSim.RegionServer.dll.build | 1 -
OpenSim/OpenSim/OpenSim.csproj | 6 ++
OpenSim/OpenSim/OpenSim.exe.build | 1 +
OpenSim/OpenSim/OpenSimMain.cs | 8 +-
12 files changed, 121 insertions(+), 145 deletions(-)
delete mode 100644 OpenSim/OpenSim.RegionServer/NetworkServersInfo.cs
(limited to 'OpenSim')
diff --git a/OpenSim/Examples/SimpleApp/Program.cs b/OpenSim/Examples/SimpleApp/Program.cs
index de6e6d3..944bca3 100644
--- a/OpenSim/Examples/SimpleApp/Program.cs
+++ b/OpenSim/Examples/SimpleApp/Program.cs
@@ -53,7 +53,7 @@ namespace SimpleApp
ClientView.TerrainManager = new TerrainManager(new SecondLife());
- CommunicationsManager communicationsManager = new CommunicationsLocal();
+ CommunicationsManager communicationsManager = new CommunicationsLocal(1000, 1000);
RegionInfo regionInfo = new RegionInfo( );
diff --git a/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs b/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs
index 795f99d..008d47e 100644
--- a/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs
+++ b/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs
@@ -41,13 +41,20 @@ namespace OpenSim.LocalCommunications
public class CommunicationsLocal : CommunicationsManager
{
public LocalBackEndServices SandBoxServices = new LocalBackEndServices();
- protected LocalUserServices UserServices = new LocalUserServices();
+ public LocalUserServices UserServices;
- public CommunicationsLocal()
+ public CommunicationsLocal(uint defaultHomeX , uint defaultHomeY)
{
+ UserServices = new LocalUserServices(this , defaultHomeX, defaultHomeY);
+ UserServices.AddPlugin("OpenGrid.Framework.Data.DB4o.dll");
UserServer = UserServices;
GridServer = SandBoxServices;
InterRegion = SandBoxServices;
}
+
+ internal void InformRegionOfLogin(ulong regionHandle, Login login)
+ {
+ this.SandBoxServices.AddNewSession(regionHandle, login);
+ }
}
}
diff --git a/OpenSim/OpenSim.LocalCommunications/LocalUserServices.cs b/OpenSim/OpenSim.LocalCommunications/LocalUserServices.cs
index fdfdd16..7a7f2bf 100644
--- a/OpenSim/OpenSim.LocalCommunications/LocalUserServices.cs
+++ b/OpenSim/OpenSim.LocalCommunications/LocalUserServices.cs
@@ -4,9 +4,11 @@ using System.Collections.Generic;
using System.Text;
using OpenGrid.Framework.Communications;
-using OpenSim.Framework.User;
+//using OpenSim.Framework.User;
using OpenGrid.Framework.UserManagement;
using OpenGrid.Framework.Data;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Utilities;
using libsecondlife;
@@ -14,30 +16,102 @@ namespace OpenSim.LocalCommunications
{
public class LocalUserServices : UserManagerBase, IUserServices
{
-
- public LocalUserServices()
- {
+ private CommunicationsLocal m_Parent;
+ private uint defaultHomeX ;
+ private uint defaultHomeY;
+ public LocalUserServices(CommunicationsLocal parent, uint defHomeX, uint defHomeY)
+ {
+ m_Parent = parent;
+ defaultHomeX = defHomeX;
+ defaultHomeY = defHomeY;
}
- public UserProfileData GetUserProfile(string first_name, string last_name)
+ public UserProfileData GetUserProfile(string firstName, string lastName)
{
- return GetUserProfile(first_name + " " + last_name);
+ return GetUserProfile(firstName + " " + lastName);
}
public UserProfileData GetUserProfile(string name)
{
- return null;
+ return this.getUserProfile(name);
+ }
+ public UserProfileData GetUserProfile(LLUUID avatarID)
+ {
+ return this.getUserProfile(avatarID);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public override string GetMessage()
+ {
+ return "Welcome to OpenSim";
+ }
+
+ public override UserProfileData GetTheUser(string firstname, string lastname)
+ {
+ UserProfileData profile = getUserProfile(firstname, lastname);
+ if (profile != null)
+ {
+
+ return profile;
+ }
+
+ //no current user account so make one
+ Console.WriteLine("No User account found so creating a new one ");
+ this.AddUserProfile(firstname, lastname, "test", defaultHomeX, defaultHomeY);
+
+ profile = getUserProfile(firstname, lastname);
+
+ return profile;
}
- public UserProfileData GetUserProfile(LLUUID avatar_id)
+
+ public override bool AuthenticateUser(ref UserProfileData profile, string password)
{
- return null;
+ //for now we will accept any password in sandbox mode
+ Console.WriteLine("authorising user");
+ return true;
}
- public override void CustomiseResponse(ref Hashtable response, ref UserProfileData theUser)
+ public override void CustomiseResponse(ref LoginResponse response, ref UserProfileData theUser)
{
+ ulong currentRegion = theUser.currentAgent.currentHandle;
+ RegionInfo reg = m_Parent.GridServer.RequestNeighbourInfo(currentRegion);
+
+
+ if (reg != null)
+ {
+ response.Home = "{'region_handle':[r" + (reg.RegionLocX * 256).ToString() + ",r" + (reg.RegionLocY * 256).ToString() + "], " +
+ "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " +
+ "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "]}";
+
+ response.SimAddress = reg.IPListenAddr;
+ response.SimPort = (Int32)reg.IPListenPort;
+ response.RegionX = reg.RegionLocX ;
+ response.RegionY = reg.RegionLocY ;
+
+ theUser.currentAgent.currentRegion = reg.SimUUID;
+ theUser.currentAgent.currentHandle = reg.RegionHandle;
+
+ Login _login = new Login();
+ //copy data to login object
+ _login.First = response.Firstname;
+ _login.Last = response.Lastname;
+ _login.Agent = response.AgentID;
+ _login.Session = response.SessionID;
+ _login.SecureSession = response.SecureSessionID;
+ _login.CircuitCode = (uint)response.CircuitCode;
+
+ m_Parent.InformRegionOfLogin(currentRegion, _login);
+ }
+ else
+ {
+ Console.WriteLine("not found region " + currentRegion);
+ }
}
-
+
}
}
diff --git a/OpenSim/OpenSim.Region/Scenes/Scene.cs b/OpenSim/OpenSim.Region/Scenes/Scene.cs
index 7716410..ca8e5c3 100644
--- a/OpenSim/OpenSim.Region/Scenes/Scene.cs
+++ b/OpenSim/OpenSim.Region/Scenes/Scene.cs
@@ -425,7 +425,7 @@ namespace OpenSim.Region.Scenes
Console.WriteLine("No default terrain, procedurally generating...");
this.Terrain.hills();
- // this.localStorage.SaveMap(this.Terrain.getHeights1D());
+ this.localStorage.SaveMap(this.Terrain.getHeights1D());
}
else
{
@@ -439,7 +439,7 @@ namespace OpenSim.Region.Scenes
Console.WriteLine("Unable to load default terrain, procedurally generating instead...");
Terrain.hills();
}
- // this.localStorage.SaveMap(this.Terrain.getHeights1D());
+ this.localStorage.SaveMap(this.Terrain.getHeights1D());
}
}
else
diff --git a/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs
index 24278da..d21b11f 100644
--- a/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs
+++ b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs
@@ -49,7 +49,7 @@ namespace OpenSim.Region.Scenes
{
}
- public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
+ public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
{
}
@@ -69,11 +69,11 @@ namespace OpenSim.Region.Scenes
}
- public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation)
+ public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation)
{
}
- public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
+ public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
{
}
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
index 7a0cbe3..1a03216 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
@@ -189,6 +189,14 @@ namespace OpenSim
OutPacket(mov);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
{
SendChatMessage(Helpers.StringToField(message), type, fromPos, fromName, fromAgentID);
diff --git a/OpenSim/OpenSim.RegionServer/NetworkServersInfo.cs b/OpenSim/OpenSim.RegionServer/NetworkServersInfo.cs
deleted file mode 100644
index 407ebe0..0000000
--- a/OpenSim/OpenSim.RegionServer/NetworkServersInfo.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* * Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-* * Neither the name of the OpenSim Project nor the
-* names of its contributors may be used to endorse or promote products
-* derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-*/
-using System;
-using System.Collections.Generic;
-using System.Text;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenSim
-{
-
- public class NetworkServersInfo
- {
- public string AssetURL = "http://127.0.0.1:8003/";
- public string AssetSendKey = "";
-
- public string GridURL = "";
- public string GridSendKey = "";
- public string GridRecvKey = "";
- public string UserURL = "";
- public string UserSendKey = "";
- public string UserRecvKey = "";
- public bool isSandbox;
-
- public void InitConfig(bool sandboxMode, IGenericConfig configData)
- {
- this.isSandbox = sandboxMode;
-
- try
- {
- if (!isSandbox)
- {
- string attri = "";
- //Grid Server URL
- attri = "";
- attri = configData.GetAttribute("GridServerURL");
- if (attri == "")
- {
- this.GridURL = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Grid server URL", "http://127.0.0.1:8001/");
- configData.SetAttribute("GridServerURL", this.GridURL);
- }
- else
- {
- this.GridURL = attri;
- }
-
- //Grid Send Key
- attri = "";
- attri = configData.GetAttribute("GridSendKey");
- if (attri == "")
- {
- this.GridSendKey = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Key to send to grid server", "null");
- configData.SetAttribute("GridSendKey", this.GridSendKey);
- }
- else
- {
- this.GridSendKey = attri;
- }
-
- //Grid Receive Key
- attri = "";
- attri = configData.GetAttribute("GridRecvKey");
- if (attri == "")
- {
- this.GridRecvKey = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Key to expect from grid server", "null");
- configData.SetAttribute("GridRecvKey", this.GridRecvKey);
- }
- else
- {
- this.GridRecvKey = attri;
- }
-
- attri = "";
- attri = configData.GetAttribute("AssetServerURL");
- if (attri == "")
- {
- this.AssetURL = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Asset server URL", "http://127.0.0.1:8003/");
- configData.SetAttribute("AssetServerURL", this.GridURL);
- }
- else
- {
- this.AssetURL = attri;
- }
-
- }
- configData.Commit();
- }
- catch (Exception e)
- {
- OpenSim.Framework.Console.MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
- OpenSim.Framework.Console.MainLog.Instance.Warn(e.ToString());
- }
- }
- }
-
-}
diff --git a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj
index e569187..b1ce3eb 100644
--- a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj
+++ b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj
@@ -157,9 +157,6 @@
Code
-
- Code
-
Code
diff --git a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
index 520f826..12dca8a 100644
--- a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
+++ b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
@@ -18,7 +18,6 @@
-
diff --git a/OpenSim/OpenSim/OpenSim.csproj b/OpenSim/OpenSim/OpenSim.csproj
index fb0e0c1..a8cadc0 100644
--- a/OpenSim/OpenSim/OpenSim.csproj
+++ b/OpenSim/OpenSim/OpenSim.csproj
@@ -86,6 +86,12 @@
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
False
+
+ OpenGrid.Framework.UserManagement
+ {DA9A7391-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
OpenSim.Caches
{1938EB12-0000-0000-0000-000000000000}
diff --git a/OpenSim/OpenSim/OpenSim.exe.build b/OpenSim/OpenSim/OpenSim.exe.build
index 78e4fa3..068e160 100644
--- a/OpenSim/OpenSim/OpenSim.exe.build
+++ b/OpenSim/OpenSim/OpenSim.exe.build
@@ -23,6 +23,7 @@
+
diff --git a/OpenSim/OpenSim/OpenSimMain.cs b/OpenSim/OpenSim/OpenSimMain.cs
index 0ef6cbd..3b83fd8 100644
--- a/OpenSim/OpenSim/OpenSimMain.cs
+++ b/OpenSim/OpenSim/OpenSimMain.cs
@@ -106,13 +106,13 @@ namespace OpenSim
this.SetupLocalGridServers();
this.checkServer = new CheckSumServer(12036);
this.checkServer.ServerListener();
- sandboxCommunications = new CommunicationsLocal();
+ sandboxCommunications = new CommunicationsLocal(this.serversData.DefaultHomeLocX, this.serversData.DefaultHomeLocY);
this.commsManager = sandboxCommunications;
}
else
{
this.SetupRemoteGridServers();
- this.commsManager = new CommunicationsLocal(); //shouldn't be using the local communications manager
+ this.commsManager = new CommunicationsLocal(this.serversData.DefaultHomeLocX, this.serversData.DefaultHomeLocY); //shouldn't be using the local communications manager
}
startuptime = DateTime.Now;
@@ -132,11 +132,15 @@ namespace OpenSim
if (m_sandbox)
{
+ httpServer.AddXmlRPCHandler("login_to_simulator", sandboxCommunications.UserServices.XmlRpcLoginMethod);
+
+ /*
loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, false);
loginServer.Startup();
loginServer.SetSessionHandler(sandboxCommunications.SandBoxServices.AddNewSession);
//sandbox mode with loginserver not using accounts
httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod);
+ */
}
//Start http server
--
cgit v1.1