From b0dfd5602aa05a0a0a3c6adb6a982c52d1af7dda Mon Sep 17 00:00:00 2001 From: gareth Date: Sun, 22 Apr 2007 05:40:00 +0000 Subject: [PATCH] Now starts up a laggy (to be fixed) TCP server in grid mode and sends a banner NEED THREAD POOLS!!! DO NOT LET ME GET AWAY WITH BEING LAZY PEOPLE! --- OpenSim.RegionServer/OpenSimMain.cs | 14 ++++++++++++-- OpenSim.Servers/OpenGridProtocol.cs | 7 ++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/OpenSim.RegionServer/OpenSimMain.cs b/OpenSim.RegionServer/OpenSimMain.cs index edf4c62bba..1c3454dbf7 100644 --- a/OpenSim.RegionServer/OpenSimMain.cs +++ b/OpenSim.RegionServer/OpenSimMain.cs @@ -82,9 +82,11 @@ namespace OpenSim public string m_physicsEngine; public bool m_sandbox = false; public bool m_loginserver; + public OpenGridProtocolServer OGSServer; public bool user_accounts = false; public bool gridLocalAsset = false; + protected ConsoleBase m_console; public OpenSimMain(bool sandBoxMode, bool startLoginServer, string physicsEngine) @@ -203,7 +205,10 @@ namespace OpenSim if (gridServer.GetName() == "Remote") { - //we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server + // should startup the OGS protocol server here + OGSServer = new OpenGridProtocolServer(8500); + + // we are in Grid mode so set a XmlRpc handler to handle "expect_user" calls from the user server httpServer.AddXmlRPCHandler("expect_user", delegate(XmlRpcRequest request) { @@ -293,7 +298,12 @@ namespace OpenSim m_console.WriteLine("Main.cs:Startup() - Starting HTTP server"); httpServer.Start(); - + + if(gridServer.GetName() == "Remote") { + m_console.WriteLine("Main.cs:Startup() - Starting up OGS protocol server"); + OGSServer.Start(); + } + MainServerListener(); m_heartbeatTimer.Enabled = true; diff --git a/OpenSim.Servers/OpenGridProtocol.cs b/OpenSim.Servers/OpenGridProtocol.cs index e3a7c3f1fd..c3d7d5cef9 100644 --- a/OpenSim.Servers/OpenGridProtocol.cs +++ b/OpenSim.Servers/OpenGridProtocol.cs @@ -33,10 +33,12 @@ namespace OpenSim.Servers private void DoWork() { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenGridProtocol.cs: ClientHandler.DoWork() - Got new client"); + this.WriteLine("OpenSim 0.1, running OGS protocol 1.0"); } private void WriteLine(string theline) { + theline+="\n"; byte[] thelinebuffer = System.Text.Encoding.ASCII.GetBytes(theline.ToCharArray()); m_socketHandle.Send(thelinebuffer,theline.Length,0); } @@ -51,6 +53,7 @@ namespace OpenSim.Servers { OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenGridProtocol.cs: Start() - Opening server socket"); + m_clients = new ArrayList(); m_workerThread = new Thread(new ThreadStart(StartServerSocket)); m_workerThread.IsBackground = true; m_workerThread.Start(); @@ -72,7 +75,9 @@ namespace OpenSim.Servers while (true) { sockethandle = m_listenerSocket.Accept(); - m_clients.Add(new OpenGridProtocolServer.ClientHandler(sockethandle)); + lock(m_clients.SyncRoot) { + m_clients.Add(new OpenGridProtocolServer.ClientHandler(sockethandle)); + } } } catch (Exception e)