Fixed up OpenSim CAPS

Added real grid auth
Implemented sending user name to sim
Drank approx 750ml red bull
ogs-cs
gareth 2007-03-13 22:49:15 +00:00
parent 179adbf242
commit edbc3a46b2
18 changed files with 96 additions and 33 deletions

View File

@ -78,7 +78,7 @@ namespace OpenGridServices
newprofile.sim_port=sim_port;
newprofile.RegionLocX=RegionLocX;
newprofile.RegionLocY=RegionLocY;
newprofile.caps_url="http://" + sim_ip + ":12036";
newprofile.caps_url="http://" + sim_ip + ":9000/";
newprofile.sendkey=sendkey;
newprofile.recvkey=recvkey;
newprofile.regionhandle=Util.UIntsToLong((RegionLocX*256), (RegionLocY*256));

View File

@ -73,8 +73,16 @@ namespace OpenSim
Hashtable requestData = (Hashtable)request.Params[0];
switch(request.MethodName) {
// Eventually will be used for useful things if we actually use XML-RPC
case "":
case "expect_user":
GridServers.agentcircuitdata agent_data = new GridServers.agentcircuitdata();
agent_data.SessionID = new LLUUID((string)requestData["session_id"]);
agent_data.SecureSessionID = new LLUUID((string)requestData["secure_session_id"]);
agent_data.firstname = (string)requestData["firstname"];
agent_data.lastname = (string)requestData["lastname"];
agent_data.AgentID = new LLUUID((string)requestData["agent_id"]);
agent_data.circuitcode = Convert.ToUInt32(requestData["circuit_code"]);
OpenSim_Main.gridServers.GridServer.agentcircuits.Add((uint)agent_data.circuitcode,agent_data);
return "<?xml version=\"1.0\"?><methodResponse><params /></methodResponse>";
break;
}
} catch(Exception e) {

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-simconfig")]
[assembly: AssemblyDescriptionAttribute("The default configuration handler")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-gridinterfaces")]
[assembly: AssemblyDescriptionAttribute("Definitions for OGS interface")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -32,6 +32,7 @@ using System.Net;
using System.Net.Sockets;
using System.IO;
using libsecondlife;
using OpenSim;
namespace OpenSim.GridServers
{
@ -46,6 +47,10 @@ namespace OpenSim.GridServers
public interface IGridServer
{
bool RequestConnection();
Dictionary<uint, agentcircuitdata> agentcircuits {
get;
set;
}
UUIDBlock RequestUUIDBlock();
void RequestNeighbours(); //should return a array of neighbouring regions
AuthenticateResponse AuthenticateSession(LLUUID sessionID, LLUUID agentID, uint circuitCode);
@ -91,4 +96,16 @@ namespace OpenSim.GridServers
{
IGridServer GetGridServer();
}
public class agentcircuitdata {
public agentcircuitdata() { }
public LLUUID AgentID;
public LLUUID SessionID;
public LLUUID SecureSessionID;
public string firstname;
public string lastname;
public uint circuitcode;
}
}

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-localservers")]
[assembly: AssemblyDescriptionAttribute("local grid servers")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -113,7 +113,14 @@ namespace LocalGridServers
public class LocalGridServer :IGridServer
{
public List<Login> Sessions = new List<Login>();
private Dictionary<uint, agentcircuitdata> AgentCircuits = new Dictionary<uint, agentcircuitdata>();
public Dictionary<uint, agentcircuitdata> agentcircuits {
get {return agentcircuits;}
set {agentcircuits=value;}
}
public LocalGridServer()
{
Sessions = new List<Login>();

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-localstorage")]
[assembly: AssemblyDescriptionAttribute("The local storage handler")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -56,7 +56,8 @@ namespace OpenSim
public static SimConfig cfg;
public static World local_world;
public static Grid gridServers;
public static SimCAPSHTTPServer http_server;
public static Socket Server;
private static IPEndPoint ServerIncoming;
private static byte[] RecvBuffer = new byte[4096];
@ -169,6 +170,9 @@ namespace OpenSim
local_world.LoadStorageDLL("Db4LocalStorage.dll"); //all these dll names shouldn't be hard coded.
local_world.LoadPrimsFromStorage();
ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting CAPS HTTP server");
http_server = new SimCAPSHTTPServer();
MainServerListener();
}

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-remoteservers")]
[assembly: AssemblyDescriptionAttribute("Connects to remote OGS installation")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -70,6 +70,11 @@ namespace RemoteGridServers
private string GridServerUrl;
private string GridSendKey;
private Dictionary<uint, agentcircuitdata> AgentCircuits = new Dictionary<uint, agentcircuitdata>();
public Dictionary<uint, agentcircuitdata> agentcircuits {
get {return AgentCircuits;}
set {AgentCircuits=value;}
}
public RemoteGridServer()
{
@ -80,7 +85,8 @@ namespace RemoteGridServers
{
return true;
}
public AuthenticateResponse AuthenticateSession(LLUUID sessionID, LLUUID agentID, uint circuitcode)
{
agentcircuitdata validcircuit=this.AgentCircuits[circuitcode];
@ -209,16 +215,6 @@ namespace RemoteGridServers
}
}
public class agentcircuitdata {
public agentcircuitdata() { }
public LLUUID AgentID;
public LLUUID SessionID;
public LLUUID SecureSessionID;
public string firstname;
public string lastname;
public uint circuitcode;
}
public class BlockingQueue< T > {
private Queue< T > _queue = new Queue< T >();
private object _queueSync = new object();

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-serverconsole")]
[assembly: AssemblyDescriptionAttribute("The default server console")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -59,6 +59,16 @@ namespace OpenSim
public bool Incoming;
}
public class agentcircuitdata {
public agentcircuitdata() { }
public LLUUID AgentID;
public LLUUID SessionID;
public LLUUID SecureSessionID;
public string firstname;
public string lastname;
public uint circuitcode;
}
public class BlockingQueue< T > {
private Queue< T > _queue = new Queue< T >();

View File

@ -32,6 +32,6 @@ namespace OpenSim
/// </summary>
public class VersionInfo
{
public static string Version = "0.1, Build 1173807988, Revision 196M";
public static string Version = "0.1, Build 1173826017, Revision 199M";
}
}

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-physicsmanager")]
[assembly: AssemblyDescriptionAttribute("Handles physics plugins")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisibleAttribute(false)]
[assembly: CLSCompliantAttribute(false)]
[assembly: AssemblyVersionAttribute("0.1.*.196")]
[assembly: AssemblyVersionAttribute("0.1.*.199")]
[assembly: AssemblyTitleAttribute("opensim-physicsmanager-physx")]
[assembly: AssemblyDescriptionAttribute("PhysX plugin for OpenSim")]
[assembly: AssemblyCopyrightAttribute("Copyright © OGS development team 2007")]

View File

@ -165,6 +165,9 @@ namespace OpenGridServices
ArrayList InitialOutfit = new ArrayList();
InitialOutfit.Add(InitialOutfitHash);
uint circode = (uint)(new Random()).Next();
TheUser.AddSimCircuit(circode, SimInfo.UUID);
LoginGoodData["last_name"]="\"" + TheUser.firstname + "\"";
LoginGoodData["ui-config"]=ui_config;
LoginGoodData["sim_ip"]=SimInfo.sim_ip.ToString();
@ -184,7 +187,7 @@ namespace OpenGridServices
LoginGoodData["home"]="{'region_handle':[r" + (SimInfo.RegionLocX*256).ToString() + ",r" + (SimInfo.RegionLocY*256).ToString() + "], 'position':[r" + TheUser.homepos.X.ToString() + ",r" + TheUser.homepos.Y.ToString() + ",r" + TheUser.homepos.Z.ToString() + "], 'look_at':[r" + TheUser.homelookat.X.ToString() + ",r" + TheUser.homelookat.Y.ToString() + ",r" + TheUser.homelookat.Z.ToString() + "]}";
LoginGoodData["message"]=OpenUser_Main.userserver.DefaultStartupMsg;
LoginGoodData["first_name"]="\"" + firstname + "\"";
LoginGoodData["circuit_code"]=(Int32)(new Random()).Next();
LoginGoodData["circuit_code"]=(Int32)circode;
LoginGoodData["sim_port"]=(Int32)SimInfo.sim_port;
LoginGoodData["secure_session_id"]=TheUser.CurrentSecureSessionID.ToStringHyphenated();
LoginGoodData["look_at"]="\n[r" + TheUser.homelookat.X.ToString() + ",r" + TheUser.homelookat.Y.ToString() + ",r" + TheUser.homelookat.Z.ToString() + "]\n";
@ -197,6 +200,7 @@ namespace OpenGridServices
LoginGoodData["login"]="true";
LoginGoodResp.Value=LoginGoodData;
TheUser.SendDataToSim(SimInfo);
return(Regex.Replace(XmlRpcResponseSerializer.Singleton.Serialize(LoginGoodResp),"utf-16","utf-8" ));
} catch (Exception E) {

View File

@ -131,7 +131,24 @@ namespace OpenGridServices
}
public void AddSimCircuit(uint circuit_code, LLUUID region_UUID) {
if(!this.Circuits.ContainsKey(region_UUID)) this.Circuits.Add(region_UUID, circuit_code);
if(this.Circuits.ContainsKey(region_UUID)== false)
this.Circuits.Add(region_UUID, circuit_code);
}
public void SendDataToSim(SimProfile TheSim) {
Console.WriteLine(TheSim.caps_url);
Hashtable SimParams = new Hashtable();
SimParams["session_id"]=this.CurrentSessionID.ToString();
SimParams["secure_session_id"]=this.CurrentSecureSessionID.ToString();
SimParams["firstname"]=this.firstname;
SimParams["lastname"]=this.lastname;
SimParams["agent_id"]=this.UUID.ToString();
SimParams["circuit_code"]=(Int32)this.Circuits[TheSim.UUID];
ArrayList SendParams = new ArrayList();
SendParams.Add(SimParams);
XmlRpcRequest GridReq = new XmlRpcRequest("expect_user",SendParams);
XmlRpcResponse GridResp = GridReq.Send(TheSim.caps_url,3000);
}
}
@ -180,15 +197,15 @@ namespace OpenGridServices
XmlRpcResponse GridResp = GridReq.Send(GridURL,3000);
Hashtable RespData=(Hashtable)GridResp.Value;
this.UUID = new LLUUID(RespData["UUID"].ToString());
this.regionhandle = Convert.ToUInt64(RespData["regionhandle"]);
Hashtable RespData=(Hashtable)GridResp.Value;
this.UUID = new LLUUID((string)RespData["UUID"]);
this.regionhandle = (ulong)Convert.ToUInt64(RespData["regionhandle"]);
this.regionname=(string)RespData["regionname"];
this.sim_ip=(string)RespData["sim_ip"];
this.sim_port=Convert.ToUInt16(RespData["sim_port"]);
this.sim_port=(uint)Convert.ToUInt16(RespData["sim_port"]);
this.caps_url=(string)RespData["caps_url"];
this.RegionLocX=Convert.ToUInt32(RespData["RegionLocX"]);
this.RegionLocY=Convert.ToUInt32(RespData["RegionLocY"]);
this.RegionLocX=(uint)Convert.ToUInt32(RespData["RegionLocX"]);
this.RegionLocY=(uint)Convert.ToUInt32(RespData["RegionLocY"]);
this.sendkey=(string)RespData["sendkey"];
this.recvkey=(string)RespData["recvkey"];
} catch(Exception e) {