aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/OpenSim.RegionServer/ClientView.cs
diff options
context:
space:
mode:
authorMW2007-05-27 18:52:42 +0000
committerMW2007-05-27 18:52:42 +0000
commitc746a2f9f4f0b1e7eea564effdae63472f79ab22 (patch)
tree54d23af3d168958bfec995cf2987cf5af79ac149 /OpenSim/OpenSim.RegionServer/ClientView.cs
parentGoodbye World (diff)
downloadopensim-SC_OLD-c746a2f9f4f0b1e7eea564effdae63472f79ab22.zip
opensim-SC_OLD-c746a2f9f4f0b1e7eea564effdae63472f79ab22.tar.gz
opensim-SC_OLD-c746a2f9f4f0b1e7eea564effdae63472f79ab22.tar.bz2
opensim-SC_OLD-c746a2f9f4f0b1e7eea564effdae63472f79ab22.tar.xz
Should allow multiple worlds (and UDP servers) to be ran in one instance, just missing backend comms and working Avatar/primitives classes.
Diffstat (limited to '')
-rw-r--r--OpenSim/OpenSim.RegionServer/ClientView.cs97
1 files changed, 26 insertions, 71 deletions
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.cs b/OpenSim/OpenSim.RegionServer/ClientView.cs
index a422102..0419b7a 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.cs
@@ -35,11 +35,11 @@ using System.Net.Sockets;
35using System.IO; 35using System.IO;
36using System.Threading; 36using System.Threading;
37using System.Timers; 37using System.Timers;
38using OpenSim.Framework;
38using OpenSim.Framework.Interfaces; 39using OpenSim.Framework.Interfaces;
39using OpenSim.Framework.Types; 40using OpenSim.Framework.Types;
40using OpenSim.Framework.Inventory; 41using OpenSim.Framework.Inventory;
41using OpenSim.Framework.Utilities; 42using OpenSim.Framework.Utilities;
42using OpenSim.world;
43using OpenSim.Assets; 43using OpenSim.Assets;
44 44
45namespace OpenSim 45namespace OpenSim
@@ -58,73 +58,40 @@ namespace OpenSim
58 public LLUUID AgentID; 58 public LLUUID AgentID;
59 public LLUUID SessionID; 59 public LLUUID SessionID;
60 public LLUUID SecureSessionID = LLUUID.Zero; 60 public LLUUID SecureSessionID = LLUUID.Zero;
61 public bool m_child; 61 public bool m_child = false;
62 public world.Avatar ClientAvatar;
63 private UseCircuitCodePacket cirpack; 62 private UseCircuitCodePacket cirpack;
64 public Thread ClientThread; 63 public Thread ClientThread;
65 public LLVector3 startpos; 64 public LLVector3 startpos;
66 65
67 private AgentAssetUpload UploadAssets; 66 private AgentAssetUpload UploadAssets;
68 private LLUUID newAssetFolder = LLUUID.Zero; 67 private LLUUID newAssetFolder = LLUUID.Zero;
69 private bool debug = false; 68 private bool debug = false;
70 private World m_world; 69 private IWorld m_world;
71 private Dictionary<uint, ClientView> m_clientThreads; 70 private Dictionary<uint, ClientView> m_clientThreads;
72 private AssetCache m_assetCache; 71 private AssetCache m_assetCache;
73 private IGridServer m_gridServer; 72 private IGridServer m_gridServer;
74 private IUserServer m_userServer = null;
75 private InventoryCache m_inventoryCache; 73 private InventoryCache m_inventoryCache;
76 public bool m_sandboxMode;
77 private int cachedtextureserial = 0; 74 private int cachedtextureserial = 0;
78 private RegionInfo m_regionData; 75 private RegionInfo m_regionData;
79 protected AuthenticateSessionsBase m_authenticateSessionsHandler; 76 protected AuthenticateSessionsBase m_authenticateSessionsHandler;
80 77
81 public IUserServer UserServer
82 {
83 set
84 {
85 this.m_userServer = value;
86 }
87 }
88 78
89 public LLVector3 StartPos 79 public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AuthenticateSessionsBase authenSessions)
90 { 80 {
91 get
92 {
93 return startpos;
94 }
95 set
96 {
97 startpos = value;
98 }
99 }
100 81
101 public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, World world, Dictionary<uint, ClientView> clientThreads, AssetCache assetCache, IGridServer gridServer, OpenSimNetworkHandler application, InventoryCache inventoryCache, bool sandboxMode, bool child, RegionInfo regionDat, AuthenticateSessionsBase authenSessions)
102 {
103 m_world = world;
104 m_clientThreads = clientThreads; 82 m_clientThreads = clientThreads;
105 m_assetCache = assetCache; 83 m_assetCache = assetCache;
106 m_gridServer = gridServer; 84
107 m_networkServer = application; 85 m_networkServer = packServer;
108 m_inventoryCache = inventoryCache; 86 m_inventoryCache = inventoryCache;
109 m_sandboxMode = sandboxMode;
110 m_child = child;
111 m_regionData = regionDat;
112 m_authenticateSessionsHandler = authenSessions; 87 m_authenticateSessionsHandler = authenSessions;
113 88
114 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs - Started up new client thread to handle incoming request"); 89 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs - Started up new client thread to handle incoming request");
115 cirpack = initialcirpack; 90 cirpack = initialcirpack;
116 userEP = remoteEP; 91 userEP = remoteEP;
117 92
118 if (m_gridServer.GetName() == "Remote") 93 this.m_child = m_authenticateSessionsHandler.GetAgentChildStatus(initialcirpack.CircuitCode.Code);
119 { 94 this.startpos = m_authenticateSessionsHandler.GetPosition(initialcirpack.CircuitCode.Code);
120 this.m_child = m_authenticateSessionsHandler.GetAgentChildStatus(initialcirpack.CircuitCode.Code);
121 this.startpos = m_authenticateSessionsHandler.GetPosition(initialcirpack.CircuitCode.Code);
122 //Console.WriteLine("start pos is " + this.startpos.X + " , " + this.startpos.Y + " , " + this.startpos.Z);
123 }
124 else
125 {
126 this.startpos = new LLVector3(128, 128, m_world.Terrain[(int)128, (int)128] + 15.0f); // new LLVector3(128.0f, 128.0f, 60f);
127 }
128 95
129 PacketQueue = new BlockingQueue<QueItem>(); 96 PacketQueue = new BlockingQueue<QueItem>();
130 97
@@ -146,11 +113,10 @@ namespace OpenSim
146 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent"); 113 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "SimClient.cs:UpgradeClient() - upgrading child to full agent");
147 this.m_child = false; 114 this.m_child = false;
148 //this.m_world.RemoveViewerAgent(this); 115 //this.m_world.RemoveViewerAgent(this);
149 if (!this.m_sandboxMode) 116
150 { 117 this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode);
151 this.startpos = m_authenticateSessionsHandler.GetPosition(CircuitCode); 118 m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false);
152 m_authenticateSessionsHandler.UpdateAgentChildStatus(CircuitCode, false); 119
153 }
154 OnChildAgentStatus(this.m_child); 120 OnChildAgentStatus(this.m_child);
155 //this.InitNewClient(); 121 //this.InitNewClient();
156 } 122 }
@@ -169,21 +135,16 @@ namespace OpenSim
169 KillObjectPacket kill = new KillObjectPacket(); 135 KillObjectPacket kill = new KillObjectPacket();
170 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; 136 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
171 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); 137 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
172 kill.ObjectData[0].ID = this.ClientAvatar.localid; 138 //kill.ObjectData[0].ID = this.ClientAvatar.localid;
173 foreach (ClientView client in m_clientThreads.Values) 139 foreach (ClientView client in m_clientThreads.Values)
174 { 140 {
175 client.OutPacket(kill); 141 client.OutPacket(kill);
176 } 142 }
177 if (this.m_userServer != null)
178 {
179 this.m_inventoryCache.ClientLeaving(this.AgentID, this.m_userServer);
180 }
181 else
182 {
183 this.m_inventoryCache.ClientLeaving(this.AgentID, null);
184 }
185 143
186 m_world.RemoveViewerAgent(this); 144 this.m_inventoryCache.ClientLeaving(this.AgentID, null);
145
146
147 // m_world.RemoveViewerAgent(this);
187 148
188 m_clientThreads.Remove(this.CircuitCode); 149 m_clientThreads.Remove(this.CircuitCode);
189 m_networkServer.RemoveClientCircuit(this.CircuitCode); 150 m_networkServer.RemoveClientCircuit(this.CircuitCode);
@@ -270,13 +231,13 @@ namespace OpenSim
270 protected virtual void InitNewClient() 231 protected virtual void InitNewClient()
271 { 232 {
272 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world"); 233 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "OpenSimClient.cs:InitNewClient() - Adding viewer agent to world");
273 this.ClientAvatar = m_world.AddViewerAgent(this); 234 // this.ClientAvatar = m_world.AddViewerAgent(this);
274 } 235 }
275 236
276 protected virtual void AuthUser() 237 protected virtual void AuthUser()
277 { 238 {
278 // AuthenticateResponse sessionInfo = m_gridServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code); 239 // AuthenticateResponse sessionInfo = m_gridServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code);
279 AuthenticateResponse sessionInfo = this.m_networkServer.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code); 240 AuthenticateResponse sessionInfo = this.m_authenticateSessionsHandler.AuthenticateSession(cirpack.CircuitCode.SessionID, cirpack.CircuitCode.ID, cirpack.CircuitCode.Code);
280 if (!sessionInfo.Authorised) 241 if (!sessionInfo.Authorised)
281 { 242 {
282 //session/circuit not authorised 243 //session/circuit not authorised
@@ -290,20 +251,14 @@ namespace OpenSim
290 this.AgentID = cirpack.CircuitCode.ID; 251 this.AgentID = cirpack.CircuitCode.ID;
291 this.SessionID = cirpack.CircuitCode.SessionID; 252 this.SessionID = cirpack.CircuitCode.SessionID;
292 this.CircuitCode = cirpack.CircuitCode.Code; 253 this.CircuitCode = cirpack.CircuitCode.Code;
293 InitNewClient(); 254 InitNewClient();
294 this.ClientAvatar.firstname = sessionInfo.LoginInfo.First; 255 //this.ClientAvatar.firstname = sessionInfo.LoginInfo.First;
295 this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last; 256 // this.ClientAvatar.lastname = sessionInfo.LoginInfo.Last;
296 if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero) 257 if (sessionInfo.LoginInfo.SecureSession != LLUUID.Zero)
297 { 258 {
298 this.SecureSessionID = sessionInfo.LoginInfo.SecureSession; 259 this.SecureSessionID = sessionInfo.LoginInfo.SecureSession;
299 } 260 }
300 261
301 // Create Inventory, currently only works for sandbox mode
302 if (m_sandboxMode)
303 {
304 this.SetupInventory(sessionInfo);
305 }
306
307 ClientLoop(); 262 ClientLoop();
308 } 263 }
309 } 264 }
@@ -318,18 +273,18 @@ namespace OpenSim
318 #region Inventory Creation 273 #region Inventory Creation
319 private void SetupInventory(AuthenticateResponse sessionInfo) 274 private void SetupInventory(AuthenticateResponse sessionInfo)
320 { 275 {
321 276
322 } 277 }
323 private AgentInventory CreateInventory(LLUUID baseFolder) 278 private AgentInventory CreateInventory(LLUUID baseFolder)
324 { 279 {
325 AgentInventory inventory = null; 280 AgentInventory inventory = null;
326 281
327 return inventory; 282 return inventory;
328 } 283 }
329 284
330 private void CreateInventoryItem(CreateInventoryItemPacket packet) 285 private void CreateInventoryItem(CreateInventoryItemPacket packet)
331 { 286 {
332 287
333 } 288 }
334 #endregion 289 #endregion
335 290