aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorUbitUmarov2017-06-09 23:27:33 +0100
committerUbitUmarov2017-06-09 23:27:33 +0100
commitbe975d1e89cbcb62f89cb7cb8367678a80cc47c6 (patch)
tree3edacaa93423d91af424c183097c56b09c8ab70a /OpenSim/Region/ClientStack
parentonly silent remove threads from watch list if they stopped ( ie still conside... (diff)
downloadopensim-SC_OLD-be975d1e89cbcb62f89cb7cb8367678a80cc47c6.zip
opensim-SC_OLD-be975d1e89cbcb62f89cb7cb8367678a80cc47c6.tar.gz
opensim-SC_OLD-be975d1e89cbcb62f89cb7cb8367678a80cc47c6.tar.bz2
opensim-SC_OLD-be975d1e89cbcb62f89cb7cb8367678a80cc47c6.tar.xz
add a adicional in transit flag to signal HG tps, and use it to ignore usernames requests sent to start region during tp; don't send unknows display names ( getdisplaynames cap )
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs19
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs10
2 files changed, 23 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index e1b9e08..6f5775a 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -1577,7 +1577,10 @@ namespace OpenSim.Region.ClientStack.Linden
1577 break; 1577 break;
1578 1578
1579 m_Scene.TryGetScenePresence(m_AgentID, out sp); 1579 m_Scene.TryGetScenePresence(m_AgentID, out sp);
1580 if(sp == null || sp.IsChildAgent || sp.IsDeleted || sp.IsInTransit) 1580 if(sp == null || sp.IsChildAgent || sp.IsDeleted)
1581 break;
1582
1583 if(sp.IsInTransit && !sp.IsInLocalTransit)
1581 break; 1584 break;
1582 1585
1583 client = sp.ControllingClient; 1586 client = sp.ControllingClient;
@@ -1699,7 +1702,10 @@ namespace OpenSim.Region.ClientStack.Linden
1699 break; 1702 break;
1700 1703
1701 m_Scene.TryGetScenePresence(m_AgentID, out sp); 1704 m_Scene.TryGetScenePresence(m_AgentID, out sp);
1702 if(sp == null || sp.IsChildAgent || sp.IsDeleted || sp.IsInTransit) 1705 if(sp == null || sp.IsChildAgent || sp.IsDeleted)
1706 break;
1707
1708 if(sp.IsInTransit && !sp.IsInLocalTransit)
1703 break; 1709 break;
1704 1710
1705 client = sp.ControllingClient; 1711 client = sp.ControllingClient;
@@ -1807,7 +1813,7 @@ namespace OpenSim.Region.ClientStack.Linden
1807 if(sp == null || sp.IsDeleted) 1813 if(sp == null || sp.IsDeleted)
1808 return ""; 1814 return "";
1809 1815
1810 if(sp.IsInTransit) 1816 if(sp.IsInTransit && !sp.IsInLocalTransit)
1811 { 1817 {
1812 httpResponse.StatusCode = (int)System.Net.HttpStatusCode.ServiceUnavailable; 1818 httpResponse.StatusCode = (int)System.Net.HttpStatusCode.ServiceUnavailable;
1813 httpResponse.AddHeader("Retry-After","30"); 1819 httpResponse.AddHeader("Retry-After","30");
@@ -1817,7 +1823,6 @@ namespace OpenSim.Region.ClientStack.Linden
1817 NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query); 1823 NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
1818 string[] ids = query.GetValues("ids"); 1824 string[] ids = query.GetValues("ids");
1819 1825
1820
1821 Dictionary<UUID,string> names = m_UserManager.GetUsersNames(ids); 1826 Dictionary<UUID,string> names = m_UserManager.GetUsersNames(ids);
1822 1827
1823 OSDMap osdReply = new OSDMap(); 1828 OSDMap osdReply = new OSDMap();
@@ -1833,12 +1838,18 @@ namespace OpenSim.Region.ClientStack.Linden
1833 1838
1834 string[] parts = kvp.Value.Split(new char[] {' '}); 1839 string[] parts = kvp.Value.Split(new char[] {' '});
1835 OSDMap osdname = new OSDMap(); 1840 OSDMap osdname = new OSDMap();
1841
1842 // dont tell about unknown users, we can't send them back on Bad either
1843 if(parts[0] == "Unknown")
1844 continue;
1845/*
1836 if(parts[0] == "Unknown") 1846 if(parts[0] == "Unknown")
1837 { 1847 {
1838 osdname["display_name_next_update"] = OSD.FromDate(DateTime.UtcNow.AddHours(1)); 1848 osdname["display_name_next_update"] = OSD.FromDate(DateTime.UtcNow.AddHours(1));
1839 osdname["display_name_expires"] = OSD.FromDate(DateTime.UtcNow.AddHours(2)); 1849 osdname["display_name_expires"] = OSD.FromDate(DateTime.UtcNow.AddHours(2));
1840 } 1850 }
1841 else 1851 else
1852*/
1842 { 1853 {
1843 osdname["display_name_next_update"] = OSD.FromDate(DateTime.UtcNow.AddDays(8)); 1854 osdname["display_name_next_update"] = OSD.FromDate(DateTime.UtcNow.AddDays(8));
1844 osdname["display_name_expires"] = OSD.FromDate(DateTime.UtcNow.AddMonths(1)); 1855 osdname["display_name_expires"] = OSD.FromDate(DateTime.UtcNow.AddMonths(1));
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index f658a70..1091078 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -6473,8 +6473,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6473 6473
6474 private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack) 6474 private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack)
6475 { 6475 {
6476 UUIDGroupNameRequestPacket upack = (UUIDGroupNameRequestPacket)Pack; 6476 ScenePresence sp = (ScenePresence)SceneAgent;
6477 if(sp == null || sp.IsDeleted || (sp.IsInTransit && !sp.IsInLocalTransit))
6478 return true;
6477 6479
6480 UUIDGroupNameRequestPacket upack = (UUIDGroupNameRequestPacket)Pack;
6478 6481
6479 for (int i = 0; i < upack.UUIDNameBlock.Length; i++) 6482 for (int i = 0; i < upack.UUIDNameBlock.Length; i++)
6480 { 6483 {
@@ -7493,7 +7496,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7493 SendUserInfoReply(false, true, ""); 7496 SendUserInfoReply(false, true, "");
7494 } 7497 }
7495 return true; 7498 return true;
7496
7497 } 7499 }
7498 7500
7499 private bool HandleUpdateUserInfo(IClientAPI sender, Packet Pack) 7501 private bool HandleUpdateUserInfo(IClientAPI sender, Packet Pack)
@@ -9648,6 +9650,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
9648 9650
9649 private bool HandleUUIDNameRequest(IClientAPI sender, Packet Pack) 9651 private bool HandleUUIDNameRequest(IClientAPI sender, Packet Pack)
9650 { 9652 {
9653 ScenePresence sp = (ScenePresence)SceneAgent;
9654 if(sp == null || sp.IsDeleted || (sp.IsInTransit && !sp.IsInLocalTransit))
9655 return true;
9656
9651 UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack; 9657 UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
9652 9658
9653 foreach (UUIDNameRequestPacket.UUIDNameBlockBlock UUIDBlock in incoming.UUIDNameBlock) 9659 foreach (UUIDNameRequestPacket.UUIDNameBlockBlock UUIDBlock in incoming.UUIDNameBlock)