aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs23
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs50
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs21
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