aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/OpenSimClient.cs
diff options
context:
space:
mode:
authorMW2007-03-07 20:18:20 +0000
committerMW2007-03-07 20:18:20 +0000
commit48b05c6784e8e3c647b4efc8ffdee7c51b59251f (patch)
tree74b45ca30273152b2ee5b1cfc3a73cc3c8f4b4e8 /src/OpenSimClient.cs
parentfixed genvers.sh (diff)
downloadopensim-SC_OLD-48b05c6784e8e3c647b4efc8ffdee7c51b59251f.zip
opensim-SC_OLD-48b05c6784e8e3c647b4efc8ffdee7c51b59251f.tar.gz
opensim-SC_OLD-48b05c6784e8e3c647b4efc8ffdee7c51b59251f.tar.bz2
opensim-SC_OLD-48b05c6784e8e3c647b4efc8ffdee7c51b59251f.tar.xz
Hopefully fixed the Session logout bug.
Should now see avatars for other users connected to the same sim.
Diffstat (limited to '')
-rw-r--r--src/OpenSimClient.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/OpenSimClient.cs b/src/OpenSimClient.cs
index 8021d59..5f68806 100644
--- a/src/OpenSimClient.cs
+++ b/src/OpenSimClient.cs
@@ -90,6 +90,14 @@ namespace OpenSim
90 break; 90 break;
91 case PacketType.AgentWearablesRequest: 91 case PacketType.AgentWearablesRequest:
92 ClientAvatar.SendInitialAppearance(); 92 ClientAvatar.SendInitialAppearance();
93 foreach(OpenSimClient client in OpenSim_Main.sim.ClientThreads.Values) {
94 if(client.AgentID != this.AgentID)
95 {
96 ObjectUpdatePacket objupdate = client.ClientAvatar.CreateUpdatePacket();
97 this.OutPacket(objupdate);
98 client.ClientAvatar.SendAppearanceToOtherAgent(this);
99 }
100 }
93 break; 101 break;
94 case PacketType.ObjectAdd: 102 case PacketType.ObjectAdd:
95 OpenSim_Main.local_world.AddNewPrim((ObjectAddPacket)Pack, this); 103 OpenSim_Main.local_world.AddNewPrim((ObjectAddPacket)Pack, this);
@@ -104,11 +112,11 @@ namespace OpenSim
104 break; 112 break;
105 case PacketType.LogoutRequest: 113 case PacketType.LogoutRequest:
106 ServerConsole.MainConsole.Instance.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got a logout request"); 114 ServerConsole.MainConsole.Instance.WriteLine("OpenSimClient.cs:ProcessInPacket() - Got a logout request");
115 OpenSim_Main.gridServers.GridServer.LogoutSession(this.SessionID, this.AgentID, this.CircuitCode);
107 lock(OpenSim_Main.local_world.Entities) { 116 lock(OpenSim_Main.local_world.Entities) {
108 OpenSim_Main.local_world.Entities.Remove(this.AgentID); 117 OpenSim_Main.local_world.Entities.Remove(this.AgentID);
109 } 118 }
110 //need to do other cleaning up here too 119 //need to do other cleaning up here too
111 OpenSim_Main.gridServers.GridServer.LogoutSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code);
112 this.ClientThread.Abort(); 120 this.ClientThread.Abort();
113 break; 121 break;
114 case PacketType.ChatFromViewer: 122 case PacketType.ChatFromViewer:
@@ -254,6 +262,7 @@ namespace OpenSim
254 } 262 }
255 } 263 }
256 264
265 //ServerConsole.MainConsole.Instance.WriteLine("OUT: \n" + Pack.ToString());
257 266
258 byte[] ZeroOutBuffer = new byte[4096]; 267 byte[] ZeroOutBuffer = new byte[4096];
259 byte[] sendbuffer; 268 byte[] sendbuffer;