aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim.RegionServer/CheckSumServer.cs120
-rw-r--r--OpenSim.Servers/CheckSumServer.cs29
-rw-r--r--OpenSim.Servers/UDPServerBase.cs3
3 files changed, 26 insertions, 126 deletions
diff --git a/OpenSim.RegionServer/CheckSumServer.cs b/OpenSim.RegionServer/CheckSumServer.cs
deleted file mode 100644
index 353383a..0000000
--- a/OpenSim.RegionServer/CheckSumServer.cs
+++ /dev/null
@@ -1,120 +0,0 @@
1using System;
2using System.Text;
3using System.IO;
4using System.Threading;
5using System.Net;
6using System.Net.Sockets;
7using System.Timers;
8using System.Reflection;
9using System.Collections;
10using System.Collections.Generic;
11using libsecondlife;
12using libsecondlife.Packets;
13using OpenSim.world;
14using OpenSim.Terrain;
15using OpenSim.Framework.Interfaces;
16using OpenSim.Framework.Types;
17using OpenSim.UserServer;
18using OpenSim.Assets;
19using OpenSim.CAPS;
20using OpenSim.Framework.Console;
21using Nwc.XmlRpc;
22using OpenSim.Servers;
23using OpenSim.GenericConfig;
24
25
26namespace OpenSim
27{
28 public class CheckSumServer : UDPServer
29 {
30 public CheckSumServer(int port, ConsoleBase console)
31 {
32 listenPort = port;
33 this.m_console = console;
34 }
35
36 protected override void CreatePacketServer()
37 {
38
39 }
40
41 public override void RegisterPacketServer(PacketServer server)
42 {
43
44 }
45
46 protected override void OnReceivedData(IAsyncResult result)
47 {
48 ipeSender = new IPEndPoint(IPAddress.Any, 0);
49 epSender = (EndPoint)ipeSender;
50 Packet packet = null;
51 int numBytes = Server.EndReceiveFrom(result, ref epSender);
52 int packetEnd = numBytes - 1;
53
54 packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
55
56 // do we already have a circuit for this endpoint
57 if (packet.Type == PacketType.SecuredTemplateChecksumRequest)
58 {
59 SecuredTemplateChecksumRequestPacket checksum = (SecuredTemplateChecksumRequestPacket)packet;
60 TemplateChecksumReplyPacket checkreply = new TemplateChecksumReplyPacket();
61 checkreply.DataBlock.Checksum = 180572585;
62 checkreply.DataBlock.Flags = 0;
63 checkreply.DataBlock.MajorVersion = 1;
64 checkreply.DataBlock.MinorVersion = 15;
65 checkreply.DataBlock.PatchVersion = 0;
66 checkreply.DataBlock.ServerVersion = 2;
67 checkreply.TokenBlock.Token = checksum.TokenBlock.Token;
68 this.SendPacket(checkreply, epSender);
69
70 }
71 else
72 { // invalid client
73 // Console.Error.WriteLine("CheckSumServer.cs:OnReceivedData() - WARNING: Got a invalid packet from an invalid client - " + epSender.ToString());
74 }
75
76 Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
77 }
78
79 protected override void AddNewClient(Packet packet)
80 {
81 }
82
83 private void SendPacket(Packet Pack, EndPoint endp)
84 {
85 if (!Pack.Header.Resent)
86 {
87 // Set the sequence number
88
89 Pack.Header.Sequence = 1;
90
91 }
92 byte[] ZeroOutBuffer = new byte[4096];
93 byte[] sendbuffer;
94 sendbuffer = Pack.ToBytes();
95
96 try
97 {
98 if (Pack.Header.Zerocoded)
99 {
100 int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer);
101 this.SendPackTo(ZeroOutBuffer, packetsize, SocketFlags.None, endp);
102 }
103 else
104 {
105 this.SendPackTo(sendbuffer, sendbuffer.Length, SocketFlags.None, endp);
106 }
107 }
108 catch (Exception)
109 {
110 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM, "OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection " );
111
112 }
113 }
114
115 private void SendPackTo(byte[] buffer, int size, SocketFlags flags, EndPoint endp)
116 {
117 this.Server.SendTo(buffer, size, flags, endp);
118 }
119 }
120}
diff --git a/OpenSim.Servers/CheckSumServer.cs b/OpenSim.Servers/CheckSumServer.cs
index dc83192..2f79b7a 100644
--- a/OpenSim.Servers/CheckSumServer.cs
+++ b/OpenSim.Servers/CheckSumServer.cs
@@ -38,21 +38,42 @@ namespace OpenSim.Servers
38 // do we already have a circuit for this endpoint 38 // do we already have a circuit for this endpoint
39 if (packet.Type == PacketType.SecuredTemplateChecksumRequest) 39 if (packet.Type == PacketType.SecuredTemplateChecksumRequest)
40 { 40 {
41
41 SecuredTemplateChecksumRequestPacket checksum = (SecuredTemplateChecksumRequestPacket)packet; 42 SecuredTemplateChecksumRequestPacket checksum = (SecuredTemplateChecksumRequestPacket)packet;
42 TemplateChecksumReplyPacket checkreply = new TemplateChecksumReplyPacket(); 43 TemplateChecksumReplyPacket checkreply = new TemplateChecksumReplyPacket();
43 checkreply.DataBlock.Checksum = 180572585; 44 checkreply.DataBlock.Checksum = 180572585;
44 checkreply.DataBlock.Flags = 0; 45 checkreply.DataBlock.Flags = 0;
45 checkreply.DataBlock.MajorVersion = 1; 46 checkreply.DataBlock.MajorVersion = 1;
46 checkreply.DataBlock.MinorVersion = 15; 47 checkreply.DataBlock.MinorVersion = 15;
47 checkreply.DataBlock.PatchVersion = 0; 48 checkreply.DataBlock.PatchVersion = 0;
48 checkreply.DataBlock.ServerVersion = 2; 49 checkreply.DataBlock.ServerVersion = 0;
49 checkreply.TokenBlock.Token = checksum.TokenBlock.Token; 50 checkreply.TokenBlock.Token = checksum.TokenBlock.Token;
50 this.SendPacket(checkreply, epSender); 51 this.SendPacket(checkreply, epSender);
51 52
53 /*
54 //if we wanted to echo the the checksum/ version from the client (so that any client worked)
55 SecuredTemplateChecksumRequestPacket checkrequest = new SecuredTemplateChecksumRequestPacket();
56 checkrequest.TokenBlock.Token = checksum.TokenBlock.Token;
57 this.SendPacket(checkrequest, epSender);
58 */
59
60 }
61 else if (packet.Type == PacketType.TemplateChecksumReply)
62 {
63 TemplateChecksumReplyPacket checksum = (TemplateChecksumReplyPacket)packet;
64 TemplateChecksumReplyPacket checkreply2 = new TemplateChecksumReplyPacket();
65 checkreply2.DataBlock.Checksum = checksum.DataBlock.Checksum;
66 checkreply2.DataBlock.Flags = checksum.DataBlock.Flags;
67 checkreply2.DataBlock.MajorVersion = checksum.DataBlock.MajorVersion;
68 checkreply2.DataBlock.MinorVersion = checksum.DataBlock.MinorVersion;
69 checkreply2.DataBlock.PatchVersion = checksum.DataBlock.PatchVersion;
70 checkreply2.DataBlock.ServerVersion = checksum.DataBlock.ServerVersion;
71 checkreply2.TokenBlock.Token = checksum.TokenBlock.Token;
72 this.SendPacket(checkreply2, epSender);
73
52 } 74 }
53 else 75 else
54 { // invalid client 76 {
55 // Console.Error.WriteLine("CheckSumServer.cs:OnReceivedData() - WARNING: Got a invalid packet from an invalid client - " + epSender.ToString());
56 } 77 }
57 78
58 Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null); 79 Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
diff --git a/OpenSim.Servers/UDPServerBase.cs b/OpenSim.Servers/UDPServerBase.cs
index bdbc772..e7feb01 100644
--- a/OpenSim.Servers/UDPServerBase.cs
+++ b/OpenSim.Servers/UDPServerBase.cs
@@ -15,7 +15,6 @@ namespace OpenSim.Servers
15{ 15{
16 public class UDPServerBase 16 public class UDPServerBase
17 { 17 {
18
19 public Socket Server; 18 public Socket Server;
20 protected IPEndPoint ServerIncoming; 19 protected IPEndPoint ServerIncoming;
21 protected byte[] RecvBuffer = new byte[4096]; 20 protected byte[] RecvBuffer = new byte[4096];
@@ -48,7 +47,7 @@ namespace OpenSim.Servers
48 { 47 {
49 } 48 }
50 49
51 public void ServerListener() 50 public virtual void ServerListener()
52 { 51 {
53 52
54 ServerIncoming = new IPEndPoint(IPAddress.Any, listenPort); 53 ServerIncoming = new IPEndPoint(IPAddress.Any, listenPort);