aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorMW2007-09-08 07:50:31 +0000
committerMW2007-09-08 07:50:31 +0000
commitc29df824c2db40ccdfbaf7ac6f166c578d77db3a (patch)
tree1e9513d9c5f8d9da48ece5ce796f4d80b5796d82 /OpenSim/Region/ClientStack
parentadded SQLiteAssetData class first pass. This should work, (diff)
downloadopensim-SC-c29df824c2db40ccdfbaf7ac6f166c578d77db3a.zip
opensim-SC-c29df824c2db40ccdfbaf7ac6f166c578d77db3a.tar.gz
opensim-SC-c29df824c2db40ccdfbaf7ac6f166c578d77db3a.tar.bz2
opensim-SC-c29df824c2db40ccdfbaf7ac6f166c578d77db3a.tar.xz
Converted the LSL scripting engine into a IRegionModule, so now all "modules" share a common base interface and are loaded from the single loader. (It seems to work fine, but I have left the old scriptengine loader, incase we have to change back).
Removed the reference to OpenJpeg in the DynamicTextureModule, to see if that was causing the build problem someone is having. Added a Temporary fix for the "existing connection was forcibly closed by the remote host" exception on windows when a user logs out of a multiregion instance. Some early work to prepare for improving the way clients are updated (about prims etc).
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/ClientView.cs8
-rw-r--r--OpenSim/Region/ClientStack/ClientViewBase.cs4
-rw-r--r--OpenSim/Region/ClientStack/PacketServer.cs8
-rw-r--r--OpenSim/Region/ClientStack/UDPServer.cs18
4 files changed, 37 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index ff527fb..52fc568 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -128,6 +128,14 @@ namespace OpenSim.Region.ClientStack
128 m_networkServer.RemoveClientCircuit(this.CircuitCode); 128 m_networkServer.RemoveClientCircuit(this.CircuitCode);
129 this.ClientThread.Abort(); 129 this.ClientThread.Abort();
130 } 130 }
131
132 public override void ConnectionClosed()
133 {
134 clientPingTimer.Stop();
135 m_clientThreads.Remove(this.CircuitCode);
136 m_networkServer.RemoveClientCircuit(this.CircuitCode);
137 this.ClientThread.Abort();
138 }
131 #endregion 139 #endregion
132 140
133 # region Packet Handling 141 # region Packet Handling
diff --git a/OpenSim/Region/ClientStack/ClientViewBase.cs b/OpenSim/Region/ClientStack/ClientViewBase.cs
index 0b2c875..8a7c764 100644
--- a/OpenSim/Region/ClientStack/ClientViewBase.cs
+++ b/OpenSim/Region/ClientStack/ClientViewBase.cs
@@ -315,6 +315,10 @@ namespace OpenSim.Region.ClientStack
315 315
316 } 316 }
317 317
318 public virtual void ConnectionClosed()
319 {
320 }
321
318 #region Nested Classes 322 #region Nested Classes
319 323
320 public class QueItem 324 public class QueItem
diff --git a/OpenSim/Region/ClientStack/PacketServer.cs b/OpenSim/Region/ClientStack/PacketServer.cs
index 66a7ffd..59f11d5 100644
--- a/OpenSim/Region/ClientStack/PacketServer.cs
+++ b/OpenSim/Region/ClientStack/PacketServer.cs
@@ -74,6 +74,14 @@ namespace OpenSim.Region.ClientStack
74 } 74 }
75 } 75 }
76 76
77 public virtual void ConnectionClosed(uint circuitCode)
78 {
79 if (this.ClientThreads.ContainsKey(circuitCode))
80 {
81 ClientThreads[circuitCode].ConnectionClosed();
82 }
83 }
84
77 /// <summary> 85 /// <summary>
78 /// 86 ///
79 /// </summary> 87 /// </summary>
diff --git a/OpenSim/Region/ClientStack/UDPServer.cs b/OpenSim/Region/ClientStack/UDPServer.cs
index 45eb0cd..8b4a3cb 100644
--- a/OpenSim/Region/ClientStack/UDPServer.cs
+++ b/OpenSim/Region/ClientStack/UDPServer.cs
@@ -101,7 +101,23 @@ namespace OpenSim.Region.ClientStack
101 ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0); 101 ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
102 epSender = (EndPoint)ipeSender; 102 epSender = (EndPoint)ipeSender;
103 Packet packet = null; 103 Packet packet = null;
104 int numBytes = Server.EndReceiveFrom(result, ref epSender); 104
105 int numBytes;
106
107 try
108 {
109 numBytes = Server.EndReceiveFrom(result, ref epSender);
110 }
111 catch (System.Net.Sockets.SocketException)
112 {
113 Console.WriteLine("Remote host Closed connection");
114 this._packetServer.ConnectionClosed(this.clientCircuits[epSender]);
115 ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
116 epSender = (EndPoint)ipeSender;
117 Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
118 return;
119 }
120
105 int packetEnd = numBytes - 1; 121 int packetEnd = numBytes - 1;
106 122
107 packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer); 123 packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);