aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim.RegionServer
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim.RegionServer')
-rw-r--r--OpenSim.RegionServer/SimClient.PacketHandlers.cs7
-rw-r--r--OpenSim.RegionServer/SimClient.cs52
-rw-r--r--OpenSim.RegionServer/UDPServer.cs2
3 files changed, 41 insertions, 20 deletions
diff --git a/OpenSim.RegionServer/SimClient.PacketHandlers.cs b/OpenSim.RegionServer/SimClient.PacketHandlers.cs
index f4de974..bc49898 100644
--- a/OpenSim.RegionServer/SimClient.PacketHandlers.cs
+++ b/OpenSim.RegionServer/SimClient.PacketHandlers.cs
@@ -20,6 +20,13 @@ namespace OpenSim
20{ 20{
21 public partial class SimClient 21 public partial class SimClient
22 { 22 {
23 protected virtual void RegisterLocalPacketHandlers()
24 {
25 this.AddLocalPacketHandler(PacketType.LogoutRequest, this.Logout);
26 this.AddLocalPacketHandler(PacketType.AgentCachedTexture, this.AgentTextureCached);
27 this.AddLocalPacketHandler(PacketType.MultipleObjectUpdate, this.MultipleObjUpdate);
28 }
29
23 protected virtual bool Logout(SimClient simClient, Packet packet) 30 protected virtual bool Logout(SimClient simClient, Packet packet)
24 { 31 {
25 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:ProcessInPacket() - Got a logout request"); 32 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:ProcessInPacket() - Got a logout request");
diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs
index 81da10e..5bd098b 100644
--- a/OpenSim.RegionServer/SimClient.cs
+++ b/OpenSim.RegionServer/SimClient.cs
@@ -109,8 +109,8 @@ namespace OpenSim
109 m_sandboxMode = sandboxMode; 109 m_sandboxMode = sandboxMode;
110 m_child = child; 110 m_child = child;
111 m_regionData = regionDat; 111 m_regionData = regionDat;
112 112
113 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"OpenSimClient.cs - Started up new client thread to handle incoming request"); 113 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs - Started up new client thread to handle incoming request");
114 cirpack = initialcirpack; 114 cirpack = initialcirpack;
115 userEP = remoteEP; 115 userEP = remoteEP;
116 if (m_gridServer.GetName() == "Remote") 116 if (m_gridServer.GetName() == "Remote")
@@ -135,16 +135,10 @@ namespace OpenSim
135 ClientThread.Start(); 135 ClientThread.Start();
136 } 136 }
137 137
138 protected virtual void RegisterLocalPacketHandlers() 138 # region Client Methods
139 {
140 this.AddLocalPacketHandler(PacketType.LogoutRequest, this.Logout);
141 this.AddLocalPacketHandler(PacketType.AgentCachedTexture, this.AgentTextureCached);
142 this.AddLocalPacketHandler(PacketType.MultipleObjectUpdate, this.MultipleObjUpdate);
143 }
144
145 public void UpgradeClient() 139 public void UpgradeClient()
146 { 140 {
147 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"SimClient.cs:UpgradeClient() - upgrading child to full agent"); 141 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent");
148 this.m_child = false; 142 this.m_child = false;
149 this.m_world.RemoveViewerAgent(this); 143 this.m_world.RemoveViewerAgent(this);
150 if (!this.m_sandboxMode) 144 if (!this.m_sandboxMode)
@@ -157,7 +151,7 @@ namespace OpenSim
157 151
158 public void DowngradeClient() 152 public void DowngradeClient()
159 { 153 {
160 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"SimClient.cs:UpgradeClient() - changing full agent to child"); 154 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - changing full agent to child");
161 this.m_child = true; 155 this.m_child = true;
162 this.m_world.RemoveViewerAgent(this); 156 this.m_world.RemoveViewerAgent(this);
163 this.m_world.AddViewerAgent(this); 157 this.m_world.AddViewerAgent(this);
@@ -188,7 +182,9 @@ namespace OpenSim
188 m_networkServer.RemoveClientCircuit(this.CircuitCode); 182 m_networkServer.RemoveClientCircuit(this.CircuitCode);
189 this.ClientThread.Abort(); 183 this.ClientThread.Abort();
190 } 184 }
185 #endregion
191 186
187 # region Packet Handling
192 public static bool AddPacketHandler(PacketType packetType, PacketMethod handler) 188 public static bool AddPacketHandler(PacketType packetType, PacketMethod handler)
193 { 189 {
194 bool result = false; 190 bool result = false;
@@ -242,6 +238,10 @@ namespace OpenSim
242 return result; 238 return result;
243 } 239 }
244 240
241 # endregion
242
243 # region Low Level Packet Methods
244
245 private void ack_pack(Packet Pack) 245 private void ack_pack(Packet Pack)
246 { 246 {
247 if (Pack.Header.Reliable) 247 if (Pack.Header.Reliable)
@@ -276,7 +276,7 @@ namespace OpenSim
276 { 276 {
277 if ((now - packet.TickCount > RESEND_TIMEOUT) && (!packet.Header.Resent)) 277 if ((now - packet.TickCount > RESEND_TIMEOUT) && (!packet.Header.Resent))
278 { 278 {
279 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE,"Resending " + packet.Type.ToString() + " packet, " + 279 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Resending " + packet.Type.ToString() + " packet, " +
280 (now - packet.TickCount) + "ms have passed"); 280 (now - packet.TickCount) + "ms have passed");
281 281
282 packet.Header.Resent = true; 282 packet.Header.Resent = true;
@@ -295,7 +295,7 @@ namespace OpenSim
295 if (PendingAcks.Count > 250) 295 if (PendingAcks.Count > 250)
296 { 296 {
297 // FIXME: Handle the odd case where we have too many pending ACKs queued up 297 // FIXME: Handle the odd case where we have too many pending ACKs queued up
298 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE,"Too many ACKs queued up!"); 298 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Too many ACKs queued up!");
299 return; 299 return;
300 } 300 }
301 301
@@ -327,6 +327,10 @@ namespace OpenSim
327 ResendUnacked(); 327 ResendUnacked();
328 } 328 }
329 329
330 # endregion
331
332 #region Packet Queue Processing
333
330 protected virtual void ProcessOutPacket(Packet Pack) 334 protected virtual void ProcessOutPacket(Packet Pack)
331 { 335 {
332 // Keep track of when this packet was sent out 336 // Keep track of when this packet was sent out
@@ -417,7 +421,7 @@ namespace OpenSim
417 } 421 }
418 catch (Exception) 422 catch (Exception)
419 { 423 {
420 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,"OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection " + userEP.ToString() + " - killing thread"); 424 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM, "OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection " + userEP.ToString() + " - killing thread");
421 ClientThread.Abort(); 425 ClientThread.Abort();
422 } 426 }
423 427
@@ -478,7 +482,7 @@ namespace OpenSim
478 482
479 protected virtual void ClientLoop() 483 protected virtual void ClientLoop()
480 { 484 {
481 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"OpenSimClient.cs:ClientLoop() - Entered loop"); 485 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:ClientLoop() - Entered loop");
482 while (true) 486 while (true)
483 { 487 {
484 QueItem nextPacket = PacketQueue.Dequeue(); 488 QueItem nextPacket = PacketQueue.Dequeue();
@@ -495,9 +499,13 @@ namespace OpenSim
495 } 499 }
496 } 500 }
497 501
502 #endregion
503
504 # region Setup
505
498 protected virtual void InitNewClient() 506 protected virtual void InitNewClient()
499 { 507 {
500 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); 508 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world");
501 509
502 m_world.AddViewerAgent(this); 510 m_world.AddViewerAgent(this);
503 world.Entity tempent = m_world.Entities[this.AgentID]; 511 world.Entity tempent = m_world.Entities[this.AgentID];
@@ -507,17 +515,17 @@ namespace OpenSim
507 515
508 protected virtual void AuthUser() 516 protected virtual void AuthUser()
509 { 517 {
510 // AuthenticateResponse sessionInfo = m_gridServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code); 518 // AuthenticateResponse sessionInfo = m_gridServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code);
511 AuthenticateResponse sessionInfo = this.m_networkServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code); 519 AuthenticateResponse sessionInfo = this.m_networkServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code);
512 if (!sessionInfo.Authorised) 520 if (!sessionInfo.Authorised)
513 { 521 {
514 //session/circuit not authorised 522 //session/circuit not authorised
515 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.NORMAL,"OpenSimClient.cs:AuthUser() - New user request denied to " + userEP.ToString()); 523 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.NORMAL, "OpenSimClient.cs:AuthUser() - New user request denied to " + userEP.ToString());
516 ClientThread.Abort(); 524 ClientThread.Abort();
517 } 525 }
518 else 526 else
519 { 527 {
520 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.NORMAL,"OpenSimClient.cs:AuthUser() - Got authenticated connection from " + userEP.ToString()); 528 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.NORMAL, "OpenSimClient.cs:AuthUser() - Got authenticated connection from " + userEP.ToString());
521 //session is authorised 529 //session is authorised
522 this.AgentID = cirpack.CircuitCode.ID; 530 this.AgentID = cirpack.CircuitCode.ID;
523 this.SessionID = cirpack.CircuitCode.SessionID; 531 this.SessionID = cirpack.CircuitCode.SessionID;
@@ -539,9 +547,10 @@ namespace OpenSim
539 ClientLoop(); 547 ClientLoop();
540 } 548 }
541 } 549 }
550 # endregion
542 551
543 #region Inventory Creation 552 #region Inventory Creation
544 private void SetupInventory(AuthenticateResponse sessionInfo) 553 private void SetupInventory(AuthenticateResponse sessionInfo)
545 { 554 {
546 AgentInventory inventory = null; 555 AgentInventory inventory = null;
547 if (sessionInfo.LoginInfo.InventoryFolder != null) 556 if (sessionInfo.LoginInfo.InventoryFolder != null)
@@ -630,6 +639,8 @@ namespace OpenSim
630 } 639 }
631 #endregion 640 #endregion
632 641
642 #region Nested Classes
643
633 public class QueItem 644 public class QueItem
634 { 645 {
635 public QueItem() 646 public QueItem()
@@ -639,5 +650,6 @@ namespace OpenSim
639 public Packet Packet; 650 public Packet Packet;
640 public bool Incoming; 651 public bool Incoming;
641 } 652 }
653 #endregion
642 } 654 }
643} 655}
diff --git a/OpenSim.RegionServer/UDPServer.cs b/OpenSim.RegionServer/UDPServer.cs
index 12f35ab..0fd3cdb 100644
--- a/OpenSim.RegionServer/UDPServer.cs
+++ b/OpenSim.RegionServer/UDPServer.cs
@@ -81,6 +81,8 @@ namespace OpenSim
81 this.user_accounts = accounts; 81 this.user_accounts = accounts;
82 this.m_console = console; 82 this.m_console = console;
83 PacketServer packetServer = new PacketServer(this); 83 PacketServer packetServer = new PacketServer(this);
84
85 //set up delegate for authenticate sessions
84 this.AuthenticateHandler = new AuthenticateSessionHandler(this.m_gridServers.GridServer.AuthenticateSession); 86 this.AuthenticateHandler = new AuthenticateSessionHandler(this.m_gridServers.GridServer.AuthenticateSession);
85 } 87 }
86 88