aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs4
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs11
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs11
4 files changed, 26 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
index a381a1b..4c15ad8 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
@@ -264,7 +264,7 @@ namespace OpenSim.Region.ClientStack.Linden
264 response["int_response_code"] = 500; 264 response["int_response_code"] = 500;
265 response["str_response_string"] = "Script timeout"; 265 response["str_response_string"] = "Script timeout";
266 response["content_type"] = "text/plain"; 266 response["content_type"] = "text/plain";
267 response["keepalive"] = false; 267 response["keepalive"] = true;
268 response["reusecontext"] = false; 268 response["reusecontext"] = false;
269 269
270 return response; 270 return response;
@@ -285,7 +285,7 @@ namespace OpenSim.Region.ClientStack.Linden
285 response["int_response_code"] = 500; 285 response["int_response_code"] = 500;
286 response["str_response_string"] = "Script timeout"; 286 response["str_response_string"] = "Script timeout";
287 response["content_type"] = "text/plain"; 287 response["content_type"] = "text/plain";
288 response["keepalive"] = false; 288 response["keepalive"] = true;
289 response["reusecontext"] = false; 289 response["reusecontext"] = false;
290 290
291 lock (responses) 291 lock (responses)
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
index e053054..54e8d76 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
@@ -283,7 +283,7 @@ namespace OpenSim.Region.ClientStack.Linden
283 response["int_response_code"] = 500; 283 response["int_response_code"] = 500;
284 response["str_response_string"] = "Script timeout"; 284 response["str_response_string"] = "Script timeout";
285 response["content_type"] = "text/plain"; 285 response["content_type"] = "text/plain";
286 response["keepalive"] = false; 286 response["keepalive"] = true;
287 response["reusecontext"] = false; 287 response["reusecontext"] = false;
288 288
289 return response; 289 return response;
@@ -300,11 +300,16 @@ namespace OpenSim.Region.ClientStack.Linden
300 { 300 {
301 response = new Hashtable(); 301 response = new Hashtable();
302 302
303
303 response["int_response_code"] = 503; 304 response["int_response_code"] = 503;
304 response["str_response_string"] = "Throttled"; 305 response["str_response_string"] = "Throttled";
305 response["content_type"] = "text/plain"; 306 response["content_type"] = "text/plain";
306 response["keepalive"] = false; 307 response["keepalive"] = true;
307 response["reusecontext"] = false; 308 response["reusecontext"] = false;
309
310 Hashtable headers = new Hashtable();
311 headers["Retry-After"] = 30;
312 response["headers"] = headers;
308 313
309 lock (responses) 314 lock (responses)
310 responses[requestID] = new aPollResponse() {bytes = 0, response = response}; 315 responses[requestID] = new aPollResponse() {bytes = 0, response = response};
@@ -320,7 +325,7 @@ namespace OpenSim.Region.ClientStack.Linden
320 response["int_response_code"] = 500; 325 response["int_response_code"] = 500;
321 response["str_response_string"] = "Script timeout"; 326 response["str_response_string"] = "Script timeout";
322 response["content_type"] = "text/plain"; 327 response["content_type"] = "text/plain";
323 response["keepalive"] = false; 328 response["keepalive"] = true;
324 response["reusecontext"] = false; 329 response["reusecontext"] = false;
325 330
326 lock (responses) 331 lock (responses)
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 4c0fba5..226f2a1 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -475,6 +475,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
475 set { m_disableFacelights = value; } 475 set { m_disableFacelights = value; }
476 } 476 }
477 477
478 public List<uint> SelectedObjects {get; private set;}
478 479
479 public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } } 480 public bool SendLogoutPacketWhenClosing { set { m_SendLogoutPacketWhenClosing = value; } }
480 481
@@ -495,6 +496,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
495// DebugPacketLevel = 1; 496// DebugPacketLevel = 1;
496 497
497 CloseSyncLock = new Object(); 498 CloseSyncLock = new Object();
499 SelectedObjects = new List<uint>();
498 500
499 RegisterInterface<IClientIM>(this); 501 RegisterInterface<IClientIM>(this);
500 RegisterInterface<IClientInventory>(this); 502 RegisterInterface<IClientInventory>(this);
@@ -7389,6 +7391,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7389 7391
7390 for (int i = 0; i < incomingselect.ObjectData.Length; i++) 7392 for (int i = 0; i < incomingselect.ObjectData.Length; i++)
7391 { 7393 {
7394 if (!SelectedObjects.Contains(incomingselect.ObjectData[i].ObjectLocalID))
7395 SelectedObjects.Add(incomingselect.ObjectData[i].ObjectLocalID);
7392 handlerObjectSelect = OnObjectSelect; 7396 handlerObjectSelect = OnObjectSelect;
7393 if (handlerObjectSelect != null) 7397 if (handlerObjectSelect != null)
7394 { 7398 {
@@ -7415,6 +7419,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7415 7419
7416 for (int i = 0; i < incomingdeselect.ObjectData.Length; i++) 7420 for (int i = 0; i < incomingdeselect.ObjectData.Length; i++)
7417 { 7421 {
7422 if (!SelectedObjects.Contains(incomingdeselect.ObjectData[i].ObjectLocalID))
7423 SelectedObjects.Add(incomingdeselect.ObjectData[i].ObjectLocalID);
7418 handlerObjectDeselect = OnObjectDeselect; 7424 handlerObjectDeselect = OnObjectDeselect;
7419 if (handlerObjectDeselect != null) 7425 if (handlerObjectDeselect != null)
7420 { 7426 {
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index f66534d..b5f9da8 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1757,6 +1757,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1757 AuthenticateResponse sessionInfo; 1757 AuthenticateResponse sessionInfo;
1758 if (IsClientAuthorized(uccp, out sessionInfo)) 1758 if (IsClientAuthorized(uccp, out sessionInfo))
1759 { 1759 {
1760 AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
1761
1760 // Begin the process of adding the client to the simulator 1762 // Begin the process of adding the client to the simulator
1761 client 1763 client
1762 = AddClient( 1764 = AddClient(
@@ -1766,6 +1768,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1766 endPoint, 1768 endPoint,
1767 sessionInfo); 1769 sessionInfo);
1768 1770
1771 // This will be true if the client is new, e.g. not
1772 // an existing child agent, and there is no circuit data
1773 if (client != null && aCircuit == null)
1774 {
1775 m_scene.CloseAgent(client.AgentId, true);
1776 return;
1777 }
1778
1769 // Now we know we can handle more data 1779 // Now we know we can handle more data
1770 Thread.Sleep(200); 1780 Thread.Sleep(200);
1771 1781
@@ -1802,7 +1812,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1802 // We only want to send initial data to new clients, not ones which are being converted from child to root. 1812 // We only want to send initial data to new clients, not ones which are being converted from child to root.
1803 if (client != null) 1813 if (client != null)
1804 { 1814 {
1805 AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
1806 bool tp = (aCircuit.teleportFlags > 0); 1815 bool tp = (aCircuit.teleportFlags > 0);
1807 // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from 1816 // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
1808 if (!tp) 1817 if (!tp)