diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
3 files changed, 62 insertions, 32 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs index 59b9585..8241e07 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | |||
@@ -990,13 +990,20 @@ namespace OpenSim.Region.ClientStack.Linden | |||
990 | else | 990 | else |
991 | prim.Name = assetName + "#" + i.ToString(); | 991 | prim.Name = assetName + "#" + i.ToString(); |
992 | 992 | ||
993 | prim.EveryoneMask = 0; | ||
994 | prim.GroupMask = 0; | ||
995 | |||
993 | if (restrictPerms) | 996 | if (restrictPerms) |
994 | { | 997 | { |
995 | prim.BaseMask = (uint)(PermissionMask.Move | PermissionMask.Modify); | 998 | prim.BaseMask = (uint)(PermissionMask.Move | PermissionMask.Modify); |
996 | prim.EveryoneMask = 0; | ||
997 | prim.GroupMask = 0; | ||
998 | prim.NextOwnerMask = 0; | ||
999 | prim.OwnerMask = (uint)(PermissionMask.Move | PermissionMask.Modify); | 999 | prim.OwnerMask = (uint)(PermissionMask.Move | PermissionMask.Modify); |
1000 | prim.NextOwnerMask = 0; | ||
1001 | } | ||
1002 | else | ||
1003 | { | ||
1004 | prim.BaseMask = (uint)PermissionMask.All | (uint)PermissionMask.Export; | ||
1005 | prim.OwnerMask = (uint)PermissionMask.All | (uint)PermissionMask.Export; | ||
1006 | prim.NextOwnerMask = (uint)PermissionMask.Transfer; | ||
1000 | } | 1007 | } |
1001 | 1008 | ||
1002 | if(istest) | 1009 | if(istest) |
@@ -1099,21 +1106,17 @@ namespace OpenSim.Region.ClientStack.Linden | |||
1099 | 1106 | ||
1100 | if (restrictPerms) | 1107 | if (restrictPerms) |
1101 | { | 1108 | { |
1102 | item.CurrentPermissions | ||
1103 | = (uint)(PermissionMask.Move | PermissionMask.Modify); | ||
1104 | |||
1105 | item.BasePermissions = (uint)(PermissionMask.Move | PermissionMask.Modify); | 1109 | item.BasePermissions = (uint)(PermissionMask.Move | PermissionMask.Modify); |
1110 | item.CurrentPermissions = (uint)(PermissionMask.Move | PermissionMask.Modify); | ||
1106 | item.EveryOnePermissions = 0; | 1111 | item.EveryOnePermissions = 0; |
1107 | item.NextPermissions = 0; | 1112 | item.NextPermissions = 0; |
1108 | } | 1113 | } |
1109 | else | 1114 | else |
1110 | { | 1115 | { |
1111 | item.CurrentPermissions | ||
1112 | = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export); | ||
1113 | |||
1114 | item.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export; | 1116 | item.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export; |
1117 | item.CurrentPermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export; | ||
1115 | item.EveryOnePermissions = 0; | 1118 | item.EveryOnePermissions = 0; |
1116 | item.NextPermissions = (uint)PermissionMask.All; | 1119 | item.NextPermissions = (uint)PermissionMask.Transfer; |
1117 | } | 1120 | } |
1118 | 1121 | ||
1119 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 1122 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs index a42c96c..0570144 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs | |||
@@ -77,6 +77,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
77 | private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); | 77 | private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); |
78 | private static Thread[] m_workerThreads = null; | 78 | private static Thread[] m_workerThreads = null; |
79 | 79 | ||
80 | private string m_Url = "localhost"; | ||
81 | |||
80 | private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue = | 82 | private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue = |
81 | new OpenMetaverse.BlockingQueue<aPollRequest>(); | 83 | new OpenMetaverse.BlockingQueue<aPollRequest>(); |
82 | 84 | ||
@@ -86,6 +88,9 @@ namespace OpenSim.Region.ClientStack.Linden | |||
86 | 88 | ||
87 | public void Initialise(IConfigSource source) | 89 | public void Initialise(IConfigSource source) |
88 | { | 90 | { |
91 | IConfig config = source.Configs["ClientStack.LindenCaps"]; | ||
92 | if (config != null) | ||
93 | m_Url = config.GetString("Cap_GetTexture", "localhost"); | ||
89 | } | 94 | } |
90 | 95 | ||
91 | public void AddRegion(Scene s) | 96 | public void AddRegion(Scene s) |
@@ -343,27 +348,34 @@ namespace OpenSim.Region.ClientStack.Linden | |||
343 | 348 | ||
344 | private void RegisterCaps(UUID agentID, Caps caps) | 349 | private void RegisterCaps(UUID agentID, Caps caps) |
345 | { | 350 | { |
346 | string capUrl = "/CAPS/" + UUID.Random() + "/"; | 351 | if (m_Url == "localhost") |
347 | 352 | { | |
348 | // Register this as a poll service | 353 | string capUrl = "/CAPS/" + UUID.Random() + "/"; |
349 | PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene); | 354 | |
350 | 355 | // Register this as a poll service | |
351 | args.Type = PollServiceEventArgs.EventType.Texture; | 356 | PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene); |
352 | MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); | 357 | |
353 | 358 | args.Type = PollServiceEventArgs.EventType.Texture; | |
354 | string hostName = m_scene.RegionInfo.ExternalHostName; | 359 | MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); |
355 | uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port; | 360 | |
356 | string protocol = "http"; | 361 | string hostName = m_scene.RegionInfo.ExternalHostName; |
357 | 362 | uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port; | |
358 | if (MainServer.Instance.UseSSL) | 363 | string protocol = "http"; |
364 | |||
365 | if (MainServer.Instance.UseSSL) | ||
366 | { | ||
367 | hostName = MainServer.Instance.SSLCommonName; | ||
368 | port = MainServer.Instance.SSLPort; | ||
369 | protocol = "https"; | ||
370 | } | ||
371 | caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl)); | ||
372 | m_pollservices[agentID] = args; | ||
373 | m_capsDict[agentID] = capUrl; | ||
374 | } | ||
375 | else | ||
359 | { | 376 | { |
360 | hostName = MainServer.Instance.SSLCommonName; | 377 | caps.RegisterHandler("GetTexture", m_Url); |
361 | port = MainServer.Instance.SSLPort; | ||
362 | protocol = "https"; | ||
363 | } | 378 | } |
364 | caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl)); | ||
365 | m_pollservices[agentID] = args; | ||
366 | m_capsDict[agentID] = capUrl; | ||
367 | } | 379 | } |
368 | 380 | ||
369 | private void DeregisterCaps(UUID agentID, Caps caps) | 381 | private void DeregisterCaps(UUID agentID, Caps caps) |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index eebb8ae..7c62f90 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -2233,9 +2233,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2233 | 2233 | ||
2234 | public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) | 2234 | public void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle) |
2235 | { | 2235 | { |
2236 | m_activeGroupID = activegroupid; | 2236 | if (agentid == AgentId) |
2237 | m_activeGroupName = groupname; | 2237 | { |
2238 | m_activeGroupPowers = grouppowers; | 2238 | m_activeGroupID = activegroupid; |
2239 | m_activeGroupName = groupname; | ||
2240 | m_activeGroupPowers = grouppowers; | ||
2241 | } | ||
2239 | 2242 | ||
2240 | AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate); | 2243 | AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate); |
2241 | sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid; | 2244 | sendAgentDataUpdate.AgentData.ActiveGroupID = activegroupid; |
@@ -3933,6 +3936,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3933 | part.Shape.ProfileHollow = 27500; | 3936 | part.Shape.ProfileHollow = 27500; |
3934 | } | 3937 | } |
3935 | } | 3938 | } |
3939 | else if (update.Entity is ScenePresence) | ||
3940 | { | ||
3941 | ScenePresence presence = (ScenePresence)update.Entity; | ||
3942 | |||
3943 | // If ParentUUID is not UUID.Zero and ParentID is 0, this | ||
3944 | // avatar is in the process of crossing regions while | ||
3945 | // sat on an object. In this state, we don't want any | ||
3946 | // updates because they will visually orbit the avatar. | ||
3947 | // Update will be forced once crossing is completed anyway. | ||
3948 | if (presence.ParentUUID != UUID.Zero && presence.ParentID == 0) | ||
3949 | continue; | ||
3950 | } | ||
3936 | 3951 | ||
3937 | ++updatesThisCall; | 3952 | ++updatesThisCall; |
3938 | 3953 | ||