diff options
Diffstat (limited to '')
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) |