* Bug fix: Fixes an exception when Scene.RemoveClient is called to remove on a
non-existing ScenePresence avatar. Also removed trailing white spaces.0.6.6-post-fixes
							parent
							
								
									95643971be
								
							
						
					
					
						commit
						8545621d9b
					
				| 
						 | 
				
			
			@ -154,7 +154,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
        {
 | 
			
		||||
            get { return m_capsModule; }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        protected override IConfigSource GetConfig()
 | 
			
		||||
        {
 | 
			
		||||
            return m_config;
 | 
			
		||||
| 
						 | 
				
			
			@ -899,17 +899,17 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                        if (m_updateEntitiesThread == null)
 | 
			
		||||
                        {
 | 
			
		||||
                            m_updateEntitiesThread = new Thread(m_sceneGraph.UpdateEntities);
 | 
			
		||||
                            
 | 
			
		||||
 | 
			
		||||
                            ThreadTracker.Add(m_updateEntitiesThread);
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        if (m_updateEntitiesThread.ThreadState == ThreadState.Stopped)
 | 
			
		||||
                            m_updateEntitiesThread.Start();
 | 
			
		||||
                        */
 | 
			
		||||
                        
 | 
			
		||||
 | 
			
		||||
                        m_sceneGraph.UpdateEntities();
 | 
			
		||||
                    }
 | 
			
		||||
                        
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    // run through entities that have scheduled themselves for
 | 
			
		||||
                    // updates looking for updates(faster)
 | 
			
		||||
| 
						 | 
				
			
			@ -937,7 +937,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
 | 
			
		||||
                        if (m_frame % m_update_land == 0)
 | 
			
		||||
                            UpdateLand();
 | 
			
		||||
                        
 | 
			
		||||
 | 
			
		||||
                        otherMS = Environment.TickCount - otherMS;
 | 
			
		||||
                        // if (m_frame%m_update_avatars == 0)
 | 
			
		||||
                        //   UpdateInWorldTime();
 | 
			
		||||
| 
						 | 
				
			
			@ -1209,8 +1209,8 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            if (data != null)
 | 
			
		||||
            {
 | 
			
		||||
                IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>();
 | 
			
		||||
                                
 | 
			
		||||
                if (mapModule != null)    
 | 
			
		||||
 | 
			
		||||
                if (mapModule != null)
 | 
			
		||||
                    mapModule.LazySaveGeneratedMaptile(data, temporary);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -1391,7 +1391,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
        /// <summary>
 | 
			
		||||
        /// Add an object into the scene that has come from storage
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// 
 | 
			
		||||
        ///
 | 
			
		||||
        /// <param name="sceneObject"></param>
 | 
			
		||||
        /// <param name="attachToBackup">
 | 
			
		||||
        /// If true, changes to the object will be reflected in its persisted data
 | 
			
		||||
| 
						 | 
				
			
			@ -1778,7 +1778,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID);
 | 
			
		||||
                m_sceneGraph.RezSingleAttachment(sp.ControllingClient, itemID, attPt);
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1847,7 +1847,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                        RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
 | 
			
		||||
                        RootPrim.AddFlag(PrimFlags.TemporaryOnRez);
 | 
			
		||||
                    }
 | 
			
		||||
                    
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -1881,10 +1881,10 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            if (m_restorePresences.ContainsKey(client.AgentId))
 | 
			
		||||
            {
 | 
			
		||||
                m_log.DebugFormat("[SCENE]: Restoring agent {0} {1} in {2}", client.Name, client.AgentId, RegionInfo.RegionName);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                presence = m_restorePresences[client.AgentId];
 | 
			
		||||
                m_restorePresences.Remove(client.AgentId);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                // This is one of two paths to create avatars that are
 | 
			
		||||
                // used.  This tends to get called more in standalone
 | 
			
		||||
                // than grid, not really sure why, but as such needs
 | 
			
		||||
| 
						 | 
				
			
			@ -1892,11 +1892,11 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                AvatarAppearance appearance = null;
 | 
			
		||||
                GetAvatarAppearance(client, out appearance);
 | 
			
		||||
                presence.Appearance = appearance;
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                presence.initializeScenePresence(client, RegionInfo, this);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                m_sceneGraph.AddScenePresence(presence);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                lock (m_restorePresences)
 | 
			
		||||
                {
 | 
			
		||||
                    Monitor.PulseAll(m_restorePresences);
 | 
			
		||||
| 
						 | 
				
			
			@ -1907,9 +1907,9 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                m_log.DebugFormat(
 | 
			
		||||
                    "[SCENE]: Adding new child agent for {0} in {1}",
 | 
			
		||||
                    client.Name, RegionInfo.RegionName);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                CommsManager.UserProfileCacheService.AddNewUser(client.AgentId);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                CreateAndAddScenePresence(client);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1956,7 +1956,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            client.OnObjectDuplicate += m_sceneGraph.DuplicateObject;
 | 
			
		||||
            client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay;
 | 
			
		||||
            client.OnUpdatePrimFlags += m_sceneGraph.UpdatePrimFlags;
 | 
			
		||||
            client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily;           
 | 
			
		||||
            client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily;
 | 
			
		||||
            client.OnObjectPermissions += HandleObjectPermissionsUpdate;
 | 
			
		||||
            client.OnCreateNewInventoryItem += CreateNewInventoryItem;
 | 
			
		||||
            client.OnCreateNewInventoryFolder += HandleCreateInventoryFolder;
 | 
			
		||||
| 
						 | 
				
			
			@ -1995,9 +1995,9 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            client.OnUnackedTerrain += TerrainUnAcked;
 | 
			
		||||
            client.OnObjectOwner += ObjectOwner;
 | 
			
		||||
 | 
			
		||||
            IGodsModule godsModule = RequestModuleInterface<IGodsModule>();            
 | 
			
		||||
            IGodsModule godsModule = RequestModuleInterface<IGodsModule>();
 | 
			
		||||
            client.OnGodKickUser += godsModule.KickUser;
 | 
			
		||||
            client.OnRequestGodlikePowers += godsModule.RequestGodlikePowers; 
 | 
			
		||||
            client.OnRequestGodlikePowers += godsModule.RequestGodlikePowers;
 | 
			
		||||
 | 
			
		||||
            client.OnNetworkStatsUpdate += StatsReporter.AddPacketsStats;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2171,7 +2171,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName);
 | 
			
		||||
                appearance = new AvatarAppearance(client.AgentId);
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -2185,96 +2185,96 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            if (avatar != null)
 | 
			
		||||
            {
 | 
			
		||||
                childagentYN = avatar.IsChildAgent;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (avatar.ParentID != 0)
 | 
			
		||||
            {
 | 
			
		||||
                avatar.StandUp();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                m_log.DebugFormat(
 | 
			
		||||
                    "[SCENE]: Removing {0} agent {1} from region {2}",
 | 
			
		||||
                    (childagentYN ? "child" : "root"), agentID, RegionInfo.RegionName);
 | 
			
		||||
 | 
			
		||||
                m_sceneGraph.removeUserCount(!childagentYN);
 | 
			
		||||
                CapsModule.RemoveCapsHandler(agentID);
 | 
			
		||||
 | 
			
		||||
                if (avatar.Scene.NeedSceneCacheClear(avatar.UUID))
 | 
			
		||||
                if (avatar.ParentID != 0)
 | 
			
		||||
                {
 | 
			
		||||
                    CommsManager.UserProfileCacheService.RemoveUser(agentID);
 | 
			
		||||
                    avatar.StandUp();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (!avatar.IsChildAgent)
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    m_sceneGridService.LogOffUser(agentID, RegionInfo.RegionID, RegionInfo.RegionHandle, avatar.AbsolutePosition, avatar.Lookat);
 | 
			
		||||
                    //List<ulong> childknownRegions = new List<ulong>();
 | 
			
		||||
                    //List<ulong> ckn = avatar.KnownChildRegionHandles;
 | 
			
		||||
                    //for (int i = 0; i < ckn.Count; i++)
 | 
			
		||||
                    //{
 | 
			
		||||
                    //    childknownRegions.Add(ckn[i]);
 | 
			
		||||
                    //}
 | 
			
		||||
                    List<ulong> regions = new List<ulong>(avatar.KnownChildRegionHandles);
 | 
			
		||||
                    regions.Remove(RegionInfo.RegionHandle);
 | 
			
		||||
                    m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
 | 
			
		||||
                    m_log.DebugFormat(
 | 
			
		||||
                        "[SCENE]: Removing {0} agent {1} from region {2}",
 | 
			
		||||
                        (childagentYN ? "child" : "root"), agentID, RegionInfo.RegionName);
 | 
			
		||||
 | 
			
		||||
                    m_sceneGraph.removeUserCount(!childagentYN);
 | 
			
		||||
                    CapsModule.RemoveCapsHandler(agentID);
 | 
			
		||||
 | 
			
		||||
                    if (avatar.Scene.NeedSceneCacheClear(avatar.UUID))
 | 
			
		||||
                    {
 | 
			
		||||
                        CommsManager.UserProfileCacheService.RemoveUser(agentID);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if (!avatar.IsChildAgent)
 | 
			
		||||
                    {
 | 
			
		||||
                        m_sceneGridService.LogOffUser(agentID, RegionInfo.RegionID, RegionInfo.RegionHandle, avatar.AbsolutePosition, avatar.Lookat);
 | 
			
		||||
                        //List<ulong> childknownRegions = new List<ulong>();
 | 
			
		||||
                        //List<ulong> ckn = avatar.KnownChildRegionHandles;
 | 
			
		||||
                        //for (int i = 0; i < ckn.Count; i++)
 | 
			
		||||
                        //{
 | 
			
		||||
                        //    childknownRegions.Add(ckn[i]);
 | 
			
		||||
                        //}
 | 
			
		||||
                        List<ulong> regions = new List<ulong>(avatar.KnownChildRegionHandles);
 | 
			
		||||
                        regions.Remove(RegionInfo.RegionHandle);
 | 
			
		||||
                        m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
                    m_eventManager.TriggerClientClosed(agentID);
 | 
			
		||||
                }
 | 
			
		||||
                catch (NullReferenceException)
 | 
			
		||||
                {
 | 
			
		||||
                    // We don't know which count to remove it from
 | 
			
		||||
                    // Avatar is already disposed :/
 | 
			
		||||
                }
 | 
			
		||||
                m_eventManager.TriggerClientClosed(agentID);
 | 
			
		||||
            }
 | 
			
		||||
            catch (NullReferenceException)
 | 
			
		||||
            {
 | 
			
		||||
                // We don't know which count to remove it from
 | 
			
		||||
                // Avatar is already disposed :/
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            m_eventManager.TriggerOnRemovePresence(agentID);
 | 
			
		||||
            Broadcast(delegate(IClientAPI client)
 | 
			
		||||
                      {
 | 
			
		||||
                          try
 | 
			
		||||
                m_eventManager.TriggerOnRemovePresence(agentID);
 | 
			
		||||
                Broadcast(delegate(IClientAPI client)
 | 
			
		||||
                          {
 | 
			
		||||
                              client.SendKillObject(avatar.RegionHandle, avatar.LocalId);
 | 
			
		||||
                          }
 | 
			
		||||
                          catch (NullReferenceException)
 | 
			
		||||
                          {
 | 
			
		||||
                              //We can safely ignore null reference exceptions.  It means the avatar are dead and cleaned up anyway.
 | 
			
		||||
                          }
 | 
			
		||||
                      });
 | 
			
		||||
                              try
 | 
			
		||||
                              {
 | 
			
		||||
                                  client.SendKillObject(avatar.RegionHandle, avatar.LocalId);
 | 
			
		||||
                              }
 | 
			
		||||
                              catch (NullReferenceException)
 | 
			
		||||
                              {
 | 
			
		||||
                                  //We can safely ignore null reference exceptions.  It means the avatar are dead and cleaned up anyway.
 | 
			
		||||
                              }
 | 
			
		||||
                          });
 | 
			
		||||
 | 
			
		||||
            ForEachScenePresence(
 | 
			
		||||
                delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
 | 
			
		||||
                ForEachScenePresence(
 | 
			
		||||
                    delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
 | 
			
		||||
 | 
			
		||||
            IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>();
 | 
			
		||||
            if (agentTransactions != null)
 | 
			
		||||
            {
 | 
			
		||||
                agentTransactions.RemoveAgentAssetTransactions(agentID);
 | 
			
		||||
                IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>();
 | 
			
		||||
                if (agentTransactions != null)
 | 
			
		||||
                {
 | 
			
		||||
                    agentTransactions.RemoveAgentAssetTransactions(agentID);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                m_sceneGraph.RemoveScenePresence(agentID);
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    avatar.Close();
 | 
			
		||||
                }
 | 
			
		||||
                catch (NullReferenceException)
 | 
			
		||||
                {
 | 
			
		||||
                    //We can safely ignore null reference exceptions.  It means the avatar are dead and cleaned up anyway.
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception e)
 | 
			
		||||
                {
 | 
			
		||||
                    m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // Remove client agent from profile, so new logins will work
 | 
			
		||||
                if (!childagentYN)
 | 
			
		||||
                {
 | 
			
		||||
                    m_sceneGridService.ClearUserAgent(agentID);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode);
 | 
			
		||||
 | 
			
		||||
                //m_log.InfoFormat("[SCENE] Memory pre  GC {0}", System.GC.GetTotalMemory(false));
 | 
			
		||||
                //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            m_sceneGraph.RemoveScenePresence(agentID);
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                avatar.Close();
 | 
			
		||||
            }
 | 
			
		||||
            catch (NullReferenceException)
 | 
			
		||||
            {
 | 
			
		||||
                //We can safely ignore null reference exceptions.  It means the avatar are dead and cleaned up anyway.
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Remove client agent from profile, so new logins will work
 | 
			
		||||
            if (!childagentYN)
 | 
			
		||||
            {
 | 
			
		||||
                m_sceneGridService.ClearUserAgent(agentID);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode);
 | 
			
		||||
 | 
			
		||||
            //m_log.InfoFormat("[SCENE] Memory pre  GC {0}", System.GC.GetTotalMemory(false));
 | 
			
		||||
            //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void HandleRemoveKnownRegionsFromAvatar(UUID avatarID, List<ulong> regionslst)
 | 
			
		||||
| 
						 | 
				
			
			@ -2400,7 +2400,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            // Don't disable this log message - it's too helpful
 | 
			
		||||
            m_log.InfoFormat(
 | 
			
		||||
                "[CONNECTION BEGIN]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5})",
 | 
			
		||||
                RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname, 
 | 
			
		||||
                RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname,
 | 
			
		||||
                agent.AgentID, agent.circuitcode);
 | 
			
		||||
 | 
			
		||||
            reason = String.Empty;
 | 
			
		||||
| 
						 | 
				
			
			@ -2412,7 +2412,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
 | 
			
		||||
            m_log.InfoFormat(
 | 
			
		||||
                "[CONNECTION BEGIN]: Region {0} authenticated and authorized incoming {1} agent {2} {3} {4} (circuit code {5})",
 | 
			
		||||
                RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname, 
 | 
			
		||||
                RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname,
 | 
			
		||||
                agent.AgentID, agent.circuitcode);
 | 
			
		||||
 | 
			
		||||
            CapsModule.NewUserConnection(agent);
 | 
			
		||||
| 
						 | 
				
			
			@ -2423,14 +2423,14 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                m_log.DebugFormat(
 | 
			
		||||
                    "[SCENE]: Adjusting known seeds for existing agent {0} in {1}",
 | 
			
		||||
                    agent.AgentID, RegionInfo.RegionName);
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                sp.AdjustKnownSeeds();
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            CapsModule.AddCapsHandler(agent.AgentID);
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            if (!agent.child)
 | 
			
		||||
            {
 | 
			
		||||
                // Honor parcel landing type and position.
 | 
			
		||||
| 
						 | 
				
			
			@ -2443,9 +2443,9 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent);
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            // rewrite session_id
 | 
			
		||||
            CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID);
 | 
			
		||||
            if (userinfo != null)
 | 
			
		||||
| 
						 | 
				
			
			@ -2457,7 +2457,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                m_log.WarnFormat(
 | 
			
		||||
                    "[CONNECTION BEGIN]: We couldn't find a User Info record for {0}.  This is usually an indication that the UUID we're looking up is invalid", agent.AgentID);
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2467,7 +2467,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
 | 
			
		||||
            bool result = CommsManager.UserService.VerifySession(agent.AgentID, agent.SessionID);
 | 
			
		||||
            m_log.Debug("[CONNECTION BEGIN]: User authentication returned " + result);
 | 
			
		||||
            if (!result) 
 | 
			
		||||
            if (!result)
 | 
			
		||||
                reason = String.Format("Failed to authenticate user {0} {1}, access denied.", agent.firstname, agent.lastname);
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
| 
						 | 
				
			
			@ -2479,7 +2479,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
 | 
			
		||||
            if (!m_strictAccessControl) return true;
 | 
			
		||||
            if (Permissions.IsGod(agent.AgentID)) return true;
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (m_regInfo.EstateSettings.IsBanned(agent.AgentID))
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -2490,12 +2490,12 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (!m_regInfo.EstateSettings.PublicAccess && 
 | 
			
		||||
            if (!m_regInfo.EstateSettings.PublicAccess &&
 | 
			
		||||
                !m_regInfo.EstateSettings.HasAccess(agent.AgentID))
 | 
			
		||||
            {
 | 
			
		||||
                m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the estate",
 | 
			
		||||
                                 agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
 | 
			
		||||
                reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.", 
 | 
			
		||||
                reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.",
 | 
			
		||||
                                       RegionInfo.RegionName);
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -2512,7 +2512,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            //         {
 | 
			
		||||
            //             m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user has been banned from land",
 | 
			
		||||
            //                              agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
 | 
			
		||||
            //             reason = String.Format("Denied access to private region {0}: You are banned from that region.", 
 | 
			
		||||
            //             reason = String.Format("Denied access to private region {0}: You are banned from that region.",
 | 
			
		||||
            //                                    RegionInfo.RegionName);
 | 
			
		||||
            //             return false;
 | 
			
		||||
            //         }
 | 
			
		||||
| 
						 | 
				
			
			@ -2521,7 +2521,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            //         {
 | 
			
		||||
            //             m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region",
 | 
			
		||||
            //                              agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
 | 
			
		||||
            //             reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.", 
 | 
			
		||||
            //             reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.",
 | 
			
		||||
            //                                    RegionInfo.RegionName);
 | 
			
		||||
            //             return false;
 | 
			
		||||
            //         }
 | 
			
		||||
| 
						 | 
				
			
			@ -2861,7 +2861,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region Other Methods
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        public void SetObjectCapacity(int objects)
 | 
			
		||||
        {
 | 
			
		||||
            // Region specific config overrides global
 | 
			
		||||
| 
						 | 
				
			
			@ -2875,7 +2875,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
            }
 | 
			
		||||
            objectCapacity = objects;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        public List<FriendListItem> GetFriendList(string id)
 | 
			
		||||
        {
 | 
			
		||||
            UUID avatarID;
 | 
			
		||||
| 
						 | 
				
			
			@ -2974,7 +2974,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
        public override void Show(string[] showParams)
 | 
			
		||||
        {
 | 
			
		||||
            base.Show(showParams);
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            switch (showParams[0])
 | 
			
		||||
            {
 | 
			
		||||
                case "users":
 | 
			
		||||
| 
						 | 
				
			
			@ -2993,9 +2993,9 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                                          "Unknown",
 | 
			
		||||
                                          RegionInfo.RegionName);
 | 
			
		||||
                    }
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                    break;
 | 
			
		||||
            }           
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #region Script Handling Methods
 | 
			
		||||
| 
						 | 
				
			
			@ -3055,8 +3055,8 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                    }
 | 
			
		||||
                    else if ((parcel.landData.Flags & (uint)Parcel.ParcelFlags.AllowGroupScripts) != 0)
 | 
			
		||||
                    {
 | 
			
		||||
                        if (part.OwnerID == parcel.landData.OwnerID 
 | 
			
		||||
                            || (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID) 
 | 
			
		||||
                        if (part.OwnerID == parcel.landData.OwnerID
 | 
			
		||||
                            || (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID)
 | 
			
		||||
                            || Permissions.IsGod(part.OwnerID))
 | 
			
		||||
                        {
 | 
			
		||||
                            return true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue