aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim.Servers
diff options
context:
space:
mode:
authorgareth2007-04-21 17:36:03 +0000
committergareth2007-04-21 17:36:03 +0000
commit1dfda8f7440122486a51f5353807571160106656 (patch)
tree5f5113a6b9bc765d5c161f61f2d93fdd490fe27b /OpenSim.Servers
parentPart 1/2: Comments (other part will come later) (diff)
downloadopensim-SC-1dfda8f7440122486a51f5353807571160106656.zip
opensim-SC-1dfda8f7440122486a51f5353807571160106656.tar.gz
opensim-SC-1dfda8f7440122486a51f5353807571160106656.tar.bz2
opensim-SC-1dfda8f7440122486a51f5353807571160106656.tar.xz
Added OpenGridProtocol class - start of the new TCP-based intersim protocol, very basic skeleton
First commit since we lost JesseMalt - Dedicated to their memory
Diffstat (limited to 'OpenSim.Servers')
-rw-r--r--OpenSim.Servers/OpenGridProtocol.cs74
-rw-r--r--OpenSim.Servers/OpenSim.Servers.dll.build99
2 files changed, 124 insertions, 49 deletions
diff --git a/OpenSim.Servers/OpenGridProtocol.cs b/OpenSim.Servers/OpenGridProtocol.cs
new file mode 100644
index 0000000..8c91b9a
--- /dev/null
+++ b/OpenSim.Servers/OpenGridProtocol.cs
@@ -0,0 +1,74 @@
1using System;
2using System.Collections.Generic;
3using System.Net;
4using System.Net.Sockets;
5using System.Text;
6using System.Text.RegularExpressions;
7using System.Threading;
8using Nwc.XmlRpc;
9using System.Collections;
10
11namespace OpenSim.Servers
12{
13 public class OpenGridProtocolServer
14 {
15
16 private Thread m_workerThread;
17 private TcpListener m_tcpListener;
18 private int m_port;
19 private ArrayList m_clients;
20
21 private class ClientHandler {
22 private Thread m_clientThread;
23 private TcpClient m_socketHandle;
24
25 public ClientHandler(TcpClient clientSocketHandle) {
26 m_socketHandle=clientSocketHandle;
27 m_clientThread = new Thread(new ThreadStart(DoWork));
28 m_clientThread.IsBackground = true;
29 m_clientThread.Start();
30 }
31
32 private void DoWork() {
33 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenGridProtocol.cs: ClientHandler.DoWork() - Got new client");
34 }
35 }
36
37 public OpenGridProtocolServer(int port)
38 {
39 m_port = port;
40 }
41
42 public void Start()
43 {
44 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenGridProtocol.cs: Start() - Opening server socket");
45
46 m_workerThread = new Thread(new ThreadStart(StartServerSocket));
47 m_workerThread.IsBackground = true;
48 m_workerThread.Start();
49 }
50
51 private void StartServerSocket()
52 {
53 try
54 {
55 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenGridProtocol.cs: StartServerSocket() - Spawned main thread OK");
56
57
58 m_tcpListener = new TcpListener(m_port);
59 m_tcpListener.Start();
60
61 TcpClient sockethandle;
62 while (true)
63 {
64 sockethandle = m_tcpListener.AcceptTcpClient();
65 m_clients.Add(new OpenGridProtocolServer.ClientHandler(sockethandle));
66 }
67 }
68 catch (Exception e)
69 {
70 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(e.Message);
71 }
72 }
73 }
74}
diff --git a/OpenSim.Servers/OpenSim.Servers.dll.build b/OpenSim.Servers/OpenSim.Servers.dll.build
index 278018d..ee52a56 100644
--- a/OpenSim.Servers/OpenSim.Servers.dll.build
+++ b/OpenSim.Servers/OpenSim.Servers.dll.build
@@ -1,49 +1,50 @@
1<?xml version="1.0" ?> 1<?xml version="1.0" ?>
2<project name="OpenSim.Servers" default="build"> 2<project name="OpenSim.Servers" default="build">
3 <target name="build"> 3 <target name="build">
4 <echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" /> 4 <echo message="Build Directory is ${project::get-base-directory()}/${build.dir}" />
5 <mkdir dir="${project::get-base-directory()}/${build.dir}" /> 5 <mkdir dir="${project::get-base-directory()}/${build.dir}" />
6 <copy todir="${project::get-base-directory()}/${build.dir}"> 6 <copy todir="${project::get-base-directory()}/${build.dir}">
7 <fileset basedir="${project::get-base-directory()}"> 7 <fileset basedir="${project::get-base-directory()}">
8 </fileset> 8 </fileset>
9 </copy> 9 </copy>
10 <csc target="library" debug="${build.debug}" unsafe="False" define="TRACE;DEBUG" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.dll"> 10 <csc target="library" debug="${build.debug}" unsafe="False" define="TRACE" output="${project::get-base-directory()}/${build.dir}/${project::get-name()}.dll">
11 <resources prefix="OpenSim.Servers" dynamicprefix="true" > 11 <resources prefix="OpenSim.Servers" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="BaseHttpServer.cs" /> 14 <include name="BaseHttpServer.cs" />
15 <include name="BaseServer.cs" /> 15 <include name="BaseServer.cs" />
16 <include name="IRestHandler.cs" /> 16 <include name="IRestHandler.cs" />
17 <include name="LocalUserProfileManager.cs" /> 17 <include name="LocalUserProfileManager.cs" />
18 <include name="LoginResponse.cs" /> 18 <include name="LoginResponse.cs" />
19 <include name="LoginServer.cs" /> 19 <include name="LoginServer.cs" />
20 <include name="XmlRpcMethod.cs" /> 20 <include name="OpenGridProtocol.cs" />
21 </sources> 21 <include name="XmlRpcMethod.cs" />
22 <references basedir="${project::get-base-directory()}"> 22 </sources>
23 <lib> 23 <references basedir="${project::get-base-directory()}">
24 <include name="${project::get-base-directory()}" /> 24 <lib>
25 <include name="${project::get-base-directory()}/${build.dir}" /> 25 <include name="${project::get-base-directory()}" />
26 </lib> 26 <include name="${project::get-base-directory()}/${build.dir}" />
27 <include name="System.dll" /> 27 </lib>
28 <include name="System.Xml.dll" /> 28 <include name="System.dll" />
29 <include name="../bin/OpenSim.Framework.dll" /> 29 <include name="System.Xml.dll" />
30 <include name="../bin/OpenSim.Framework.Console.dll" /> 30 <include name="../bin/OpenSim.Framework.dll" />
31 <include name="../bin/libsecondlife.dll" /> 31 <include name="../bin/OpenSim.Framework.Console.dll" />
32 </references> 32 <include name="../bin/libsecondlife.dll" />
33 </csc> 33 </references>
34 <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../bin/" /> 34 </csc>
35 <mkdir dir="${project::get-base-directory()}/../bin/"/> 35 <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../bin/" />
36 <copy todir="${project::get-base-directory()}/../bin/"> 36 <mkdir dir="${project::get-base-directory()}/../bin/"/>
37 <fileset basedir="${project::get-base-directory()}/${build.dir}/" > 37 <copy todir="${project::get-base-directory()}/../bin/">
38 <include name="*.dll"/> 38 <fileset basedir="${project::get-base-directory()}/${build.dir}/" >
39 <include name="*.exe"/> 39 <include name="*.dll"/>
40 </fileset> 40 <include name="*.exe"/>
41 </copy> 41 </fileset>
42 </target> 42 </copy>
43 <target name="clean"> 43 </target>
44 <delete dir="${bin.dir}" failonerror="false" /> 44 <target name="clean">
45 <delete dir="${obj.dir}" failonerror="false" /> 45 <delete dir="${bin.dir}" failonerror="false" />
46 </target> 46 <delete dir="${obj.dir}" failonerror="false" />
47 <target name="doc" description="Creates documentation."> 47 </target>
48 </target> 48 <target name="doc" description="Creates documentation.">
49</project> 49 </target>
50</project>