aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorArthur Valadares2009-05-29 21:12:55 +0000
committerArthur Valadares2009-05-29 21:12:55 +0000
commit8545621d9b4bbaa1af21b2c2334dedb406a58263 (patch)
tree5f91d8f72f6a07c1393f2a10bcef5fbbbba4aa6f /OpenSim/Region/Framework/Scenes
parent* refactor: little tweaks to trigger another build (diff)
downloadopensim-SC-8545621d9b4bbaa1af21b2c2334dedb406a58263.zip
opensim-SC-8545621d9b4bbaa1af21b2c2334dedb406a58263.tar.gz
opensim-SC-8545621d9b4bbaa1af21b2c2334dedb406a58263.tar.bz2
opensim-SC-8545621d9b4bbaa1af21b2c2334dedb406a58263.tar.xz
* Bug fix: Fixes an exception when Scene.RemoveClient is called to remove on a
non-existing ScenePresence avatar. Also removed trailing white spaces.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs234
1 files changed, 117 insertions, 117 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 842bf1e..543b0cc 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -154,7 +154,7 @@ namespace OpenSim.Region.Framework.Scenes
154 { 154 {
155 get { return m_capsModule; } 155 get { return m_capsModule; }
156 } 156 }
157 157
158 protected override IConfigSource GetConfig() 158 protected override IConfigSource GetConfig()
159 { 159 {
160 return m_config; 160 return m_config;
@@ -899,17 +899,17 @@ namespace OpenSim.Region.Framework.Scenes
899 if (m_updateEntitiesThread == null) 899 if (m_updateEntitiesThread == null)
900 { 900 {
901 m_updateEntitiesThread = new Thread(m_sceneGraph.UpdateEntities); 901 m_updateEntitiesThread = new Thread(m_sceneGraph.UpdateEntities);
902 902
903 ThreadTracker.Add(m_updateEntitiesThread); 903 ThreadTracker.Add(m_updateEntitiesThread);
904 } 904 }
905 905
906 if (m_updateEntitiesThread.ThreadState == ThreadState.Stopped) 906 if (m_updateEntitiesThread.ThreadState == ThreadState.Stopped)
907 m_updateEntitiesThread.Start(); 907 m_updateEntitiesThread.Start();
908 */ 908 */
909 909
910 m_sceneGraph.UpdateEntities(); 910 m_sceneGraph.UpdateEntities();
911 } 911 }
912 912
913 913
914 // run through entities that have scheduled themselves for 914 // run through entities that have scheduled themselves for
915 // updates looking for updates(faster) 915 // updates looking for updates(faster)
@@ -937,7 +937,7 @@ namespace OpenSim.Region.Framework.Scenes
937 937
938 if (m_frame % m_update_land == 0) 938 if (m_frame % m_update_land == 0)
939 UpdateLand(); 939 UpdateLand();
940 940
941 otherMS = Environment.TickCount - otherMS; 941 otherMS = Environment.TickCount - otherMS;
942 // if (m_frame%m_update_avatars == 0) 942 // if (m_frame%m_update_avatars == 0)
943 // UpdateInWorldTime(); 943 // UpdateInWorldTime();
@@ -1209,8 +1209,8 @@ namespace OpenSim.Region.Framework.Scenes
1209 if (data != null) 1209 if (data != null)
1210 { 1210 {
1211 IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>(); 1211 IWorldMapModule mapModule = RequestModuleInterface<IWorldMapModule>();
1212 1212
1213 if (mapModule != null) 1213 if (mapModule != null)
1214 mapModule.LazySaveGeneratedMaptile(data, temporary); 1214 mapModule.LazySaveGeneratedMaptile(data, temporary);
1215 } 1215 }
1216 } 1216 }
@@ -1391,7 +1391,7 @@ namespace OpenSim.Region.Framework.Scenes
1391 /// <summary> 1391 /// <summary>
1392 /// Add an object into the scene that has come from storage 1392 /// Add an object into the scene that has come from storage
1393 /// </summary> 1393 /// </summary>
1394 /// 1394 ///
1395 /// <param name="sceneObject"></param> 1395 /// <param name="sceneObject"></param>
1396 /// <param name="attachToBackup"> 1396 /// <param name="attachToBackup">
1397 /// If true, changes to the object will be reflected in its persisted data 1397 /// If true, changes to the object will be reflected in its persisted data
@@ -1778,7 +1778,7 @@ namespace OpenSim.Region.Framework.Scenes
1778 uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID); 1778 uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID);
1779 m_sceneGraph.RezSingleAttachment(sp.ControllingClient, itemID, attPt); 1779 m_sceneGraph.RezSingleAttachment(sp.ControllingClient, itemID, attPt);
1780 } 1780 }
1781 1781
1782 return false; 1782 return false;
1783 } 1783 }
1784 1784
@@ -1847,7 +1847,7 @@ namespace OpenSim.Region.Framework.Scenes
1847 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 1847 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
1848 RootPrim.AddFlag(PrimFlags.TemporaryOnRez); 1848 RootPrim.AddFlag(PrimFlags.TemporaryOnRez);
1849 } 1849 }
1850 1850
1851 } 1851 }
1852 else 1852 else
1853 { 1853 {
@@ -1881,10 +1881,10 @@ namespace OpenSim.Region.Framework.Scenes
1881 if (m_restorePresences.ContainsKey(client.AgentId)) 1881 if (m_restorePresences.ContainsKey(client.AgentId))
1882 { 1882 {
1883 m_log.DebugFormat("[SCENE]: Restoring agent {0} {1} in {2}", client.Name, client.AgentId, RegionInfo.RegionName); 1883 m_log.DebugFormat("[SCENE]: Restoring agent {0} {1} in {2}", client.Name, client.AgentId, RegionInfo.RegionName);
1884 1884
1885 presence = m_restorePresences[client.AgentId]; 1885 presence = m_restorePresences[client.AgentId];
1886 m_restorePresences.Remove(client.AgentId); 1886 m_restorePresences.Remove(client.AgentId);
1887 1887
1888 // This is one of two paths to create avatars that are 1888 // This is one of two paths to create avatars that are
1889 // used. This tends to get called more in standalone 1889 // used. This tends to get called more in standalone
1890 // than grid, not really sure why, but as such needs 1890 // than grid, not really sure why, but as such needs
@@ -1892,11 +1892,11 @@ namespace OpenSim.Region.Framework.Scenes
1892 AvatarAppearance appearance = null; 1892 AvatarAppearance appearance = null;
1893 GetAvatarAppearance(client, out appearance); 1893 GetAvatarAppearance(client, out appearance);
1894 presence.Appearance = appearance; 1894 presence.Appearance = appearance;
1895 1895
1896 presence.initializeScenePresence(client, RegionInfo, this); 1896 presence.initializeScenePresence(client, RegionInfo, this);
1897 1897
1898 m_sceneGraph.AddScenePresence(presence); 1898 m_sceneGraph.AddScenePresence(presence);
1899 1899
1900 lock (m_restorePresences) 1900 lock (m_restorePresences)
1901 { 1901 {
1902 Monitor.PulseAll(m_restorePresences); 1902 Monitor.PulseAll(m_restorePresences);
@@ -1907,9 +1907,9 @@ namespace OpenSim.Region.Framework.Scenes
1907 m_log.DebugFormat( 1907 m_log.DebugFormat(
1908 "[SCENE]: Adding new child agent for {0} in {1}", 1908 "[SCENE]: Adding new child agent for {0} in {1}",
1909 client.Name, RegionInfo.RegionName); 1909 client.Name, RegionInfo.RegionName);
1910 1910
1911 CommsManager.UserProfileCacheService.AddNewUser(client.AgentId); 1911 CommsManager.UserProfileCacheService.AddNewUser(client.AgentId);
1912 1912
1913 CreateAndAddScenePresence(client); 1913 CreateAndAddScenePresence(client);
1914 } 1914 }
1915 1915
@@ -1956,7 +1956,7 @@ namespace OpenSim.Region.Framework.Scenes
1956 client.OnObjectDuplicate += m_sceneGraph.DuplicateObject; 1956 client.OnObjectDuplicate += m_sceneGraph.DuplicateObject;
1957 client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay; 1957 client.OnObjectDuplicateOnRay += doObjectDuplicateOnRay;
1958 client.OnUpdatePrimFlags += m_sceneGraph.UpdatePrimFlags; 1958 client.OnUpdatePrimFlags += m_sceneGraph.UpdatePrimFlags;
1959 client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily; 1959 client.OnRequestObjectPropertiesFamily += m_sceneGraph.RequestObjectPropertiesFamily;
1960 client.OnObjectPermissions += HandleObjectPermissionsUpdate; 1960 client.OnObjectPermissions += HandleObjectPermissionsUpdate;
1961 client.OnCreateNewInventoryItem += CreateNewInventoryItem; 1961 client.OnCreateNewInventoryItem += CreateNewInventoryItem;
1962 client.OnCreateNewInventoryFolder += HandleCreateInventoryFolder; 1962 client.OnCreateNewInventoryFolder += HandleCreateInventoryFolder;
@@ -1995,9 +1995,9 @@ namespace OpenSim.Region.Framework.Scenes
1995 client.OnUnackedTerrain += TerrainUnAcked; 1995 client.OnUnackedTerrain += TerrainUnAcked;
1996 client.OnObjectOwner += ObjectOwner; 1996 client.OnObjectOwner += ObjectOwner;
1997 1997
1998 IGodsModule godsModule = RequestModuleInterface<IGodsModule>(); 1998 IGodsModule godsModule = RequestModuleInterface<IGodsModule>();
1999 client.OnGodKickUser += godsModule.KickUser; 1999 client.OnGodKickUser += godsModule.KickUser;
2000 client.OnRequestGodlikePowers += godsModule.RequestGodlikePowers; 2000 client.OnRequestGodlikePowers += godsModule.RequestGodlikePowers;
2001 2001
2002 client.OnNetworkStatsUpdate += StatsReporter.AddPacketsStats; 2002 client.OnNetworkStatsUpdate += StatsReporter.AddPacketsStats;
2003 2003
@@ -2171,7 +2171,7 @@ namespace OpenSim.Region.Framework.Scenes
2171 m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName); 2171 m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName);
2172 appearance = new AvatarAppearance(client.AgentId); 2172 appearance = new AvatarAppearance(client.AgentId);
2173 } 2173 }
2174 2174
2175 } 2175 }
2176 2176
2177 /// <summary> 2177 /// <summary>
@@ -2185,96 +2185,96 @@ namespace OpenSim.Region.Framework.Scenes
2185 if (avatar != null) 2185 if (avatar != null)
2186 { 2186 {
2187 childagentYN = avatar.IsChildAgent; 2187 childagentYN = avatar.IsChildAgent;
2188 }
2189 2188
2190 if (avatar.ParentID != 0) 2189 if (avatar.ParentID != 0)
2191 {
2192 avatar.StandUp();
2193 }
2194
2195 try
2196 {
2197 m_log.DebugFormat(
2198 "[SCENE]: Removing {0} agent {1} from region {2}",
2199 (childagentYN ? "child" : "root"), agentID, RegionInfo.RegionName);
2200
2201 m_sceneGraph.removeUserCount(!childagentYN);
2202 CapsModule.RemoveCapsHandler(agentID);
2203
2204 if (avatar.Scene.NeedSceneCacheClear(avatar.UUID))
2205 { 2190 {
2206 CommsManager.UserProfileCacheService.RemoveUser(agentID); 2191 avatar.StandUp();
2207 } 2192 }
2208 2193
2209 if (!avatar.IsChildAgent) 2194 try
2210 { 2195 {
2211 m_sceneGridService.LogOffUser(agentID, RegionInfo.RegionID, RegionInfo.RegionHandle, avatar.AbsolutePosition, avatar.Lookat); 2196 m_log.DebugFormat(
2212 //List<ulong> childknownRegions = new List<ulong>(); 2197 "[SCENE]: Removing {0} agent {1} from region {2}",
2213 //List<ulong> ckn = avatar.KnownChildRegionHandles; 2198 (childagentYN ? "child" : "root"), agentID, RegionInfo.RegionName);
2214 //for (int i = 0; i < ckn.Count; i++) 2199
2215 //{ 2200 m_sceneGraph.removeUserCount(!childagentYN);
2216 // childknownRegions.Add(ckn[i]); 2201 CapsModule.RemoveCapsHandler(agentID);
2217 //}
2218 List<ulong> regions = new List<ulong>(avatar.KnownChildRegionHandles);
2219 regions.Remove(RegionInfo.RegionHandle);
2220 m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
2221 2202
2203 if (avatar.Scene.NeedSceneCacheClear(avatar.UUID))
2204 {
2205 CommsManager.UserProfileCacheService.RemoveUser(agentID);
2206 }
2207
2208 if (!avatar.IsChildAgent)
2209 {
2210 m_sceneGridService.LogOffUser(agentID, RegionInfo.RegionID, RegionInfo.RegionHandle, avatar.AbsolutePosition, avatar.Lookat);
2211 //List<ulong> childknownRegions = new List<ulong>();
2212 //List<ulong> ckn = avatar.KnownChildRegionHandles;
2213 //for (int i = 0; i < ckn.Count; i++)
2214 //{
2215 // childknownRegions.Add(ckn[i]);
2216 //}
2217 List<ulong> regions = new List<ulong>(avatar.KnownChildRegionHandles);
2218 regions.Remove(RegionInfo.RegionHandle);
2219 m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
2220
2221 }
2222 m_eventManager.TriggerClientClosed(agentID);
2223 }
2224 catch (NullReferenceException)
2225 {
2226 // We don't know which count to remove it from
2227 // Avatar is already disposed :/
2222 } 2228 }
2223 m_eventManager.TriggerClientClosed(agentID);
2224 }
2225 catch (NullReferenceException)
2226 {
2227 // We don't know which count to remove it from
2228 // Avatar is already disposed :/
2229 }
2230 2229
2231 m_eventManager.TriggerOnRemovePresence(agentID); 2230 m_eventManager.TriggerOnRemovePresence(agentID);
2232 Broadcast(delegate(IClientAPI client) 2231 Broadcast(delegate(IClientAPI client)
2233 {
2234 try
2235 { 2232 {
2236 client.SendKillObject(avatar.RegionHandle, avatar.LocalId); 2233 try
2237 } 2234 {
2238 catch (NullReferenceException) 2235 client.SendKillObject(avatar.RegionHandle, avatar.LocalId);
2239 { 2236 }
2240 //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway. 2237 catch (NullReferenceException)
2241 } 2238 {
2242 }); 2239 //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway.
2240 }
2241 });
2243 2242
2244 ForEachScenePresence( 2243 ForEachScenePresence(
2245 delegate(ScenePresence presence) { presence.CoarseLocationChange(); }); 2244 delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
2246 2245
2247 IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>(); 2246 IAgentAssetTransactions agentTransactions = this.RequestModuleInterface<IAgentAssetTransactions>();
2248 if (agentTransactions != null) 2247 if (agentTransactions != null)
2249 { 2248 {
2250 agentTransactions.RemoveAgentAssetTransactions(agentID); 2249 agentTransactions.RemoveAgentAssetTransactions(agentID);
2251 } 2250 }
2252 2251
2253 m_sceneGraph.RemoveScenePresence(agentID); 2252 m_sceneGraph.RemoveScenePresence(agentID);
2254 2253
2255 try 2254 try
2256 { 2255 {
2257 avatar.Close(); 2256 avatar.Close();
2258 } 2257 }
2259 catch (NullReferenceException) 2258 catch (NullReferenceException)
2260 { 2259 {
2261 //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway. 2260 //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway.
2262 } 2261 }
2263 catch (Exception e) 2262 catch (Exception e)
2264 { 2263 {
2265 m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString()); 2264 m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString());
2266 } 2265 }
2267 2266
2268 // Remove client agent from profile, so new logins will work 2267 // Remove client agent from profile, so new logins will work
2269 if (!childagentYN) 2268 if (!childagentYN)
2270 { 2269 {
2271 m_sceneGridService.ClearUserAgent(agentID); 2270 m_sceneGridService.ClearUserAgent(agentID);
2272 } 2271 }
2273 2272
2274 m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode); 2273 m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode);
2275 2274
2276 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false)); 2275 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false));
2277 //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true)); 2276 //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true));
2277 }
2278 } 2278 }
2279 2279
2280 public void HandleRemoveKnownRegionsFromAvatar(UUID avatarID, List<ulong> regionslst) 2280 public void HandleRemoveKnownRegionsFromAvatar(UUID avatarID, List<ulong> regionslst)
@@ -2400,7 +2400,7 @@ namespace OpenSim.Region.Framework.Scenes
2400 // Don't disable this log message - it's too helpful 2400 // Don't disable this log message - it's too helpful
2401 m_log.InfoFormat( 2401 m_log.InfoFormat(
2402 "[CONNECTION BEGIN]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5})", 2402 "[CONNECTION BEGIN]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5})",
2403 RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname, 2403 RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname,
2404 agent.AgentID, agent.circuitcode); 2404 agent.AgentID, agent.circuitcode);
2405 2405
2406 reason = String.Empty; 2406 reason = String.Empty;
@@ -2412,7 +2412,7 @@ namespace OpenSim.Region.Framework.Scenes
2412 2412
2413 m_log.InfoFormat( 2413 m_log.InfoFormat(
2414 "[CONNECTION BEGIN]: Region {0} authenticated and authorized incoming {1} agent {2} {3} {4} (circuit code {5})", 2414 "[CONNECTION BEGIN]: Region {0} authenticated and authorized incoming {1} agent {2} {3} {4} (circuit code {5})",
2415 RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname, 2415 RegionInfo.RegionName, (agent.child ? "child" : "root"), agent.firstname, agent.lastname,
2416 agent.AgentID, agent.circuitcode); 2416 agent.AgentID, agent.circuitcode);
2417 2417
2418 CapsModule.NewUserConnection(agent); 2418 CapsModule.NewUserConnection(agent);
@@ -2423,14 +2423,14 @@ namespace OpenSim.Region.Framework.Scenes
2423 m_log.DebugFormat( 2423 m_log.DebugFormat(
2424 "[SCENE]: Adjusting known seeds for existing agent {0} in {1}", 2424 "[SCENE]: Adjusting known seeds for existing agent {0} in {1}",
2425 agent.AgentID, RegionInfo.RegionName); 2425 agent.AgentID, RegionInfo.RegionName);
2426 2426
2427 sp.AdjustKnownSeeds(); 2427 sp.AdjustKnownSeeds();
2428 2428
2429 return true; 2429 return true;
2430 } 2430 }
2431 2431
2432 CapsModule.AddCapsHandler(agent.AgentID); 2432 CapsModule.AddCapsHandler(agent.AgentID);
2433 2433
2434 if (!agent.child) 2434 if (!agent.child)
2435 { 2435 {
2436 // Honor parcel landing type and position. 2436 // Honor parcel landing type and position.
@@ -2443,9 +2443,9 @@ namespace OpenSim.Region.Framework.Scenes
2443 } 2443 }
2444 } 2444 }
2445 } 2445 }
2446 2446
2447 m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); 2447 m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent);
2448 2448
2449 // rewrite session_id 2449 // rewrite session_id
2450 CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); 2450 CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID);
2451 if (userinfo != null) 2451 if (userinfo != null)
@@ -2457,7 +2457,7 @@ namespace OpenSim.Region.Framework.Scenes
2457 m_log.WarnFormat( 2457 m_log.WarnFormat(
2458 "[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); 2458 "[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);
2459 } 2459 }
2460 2460
2461 return true; 2461 return true;
2462 } 2462 }
2463 2463
@@ -2467,7 +2467,7 @@ namespace OpenSim.Region.Framework.Scenes
2467 2467
2468 bool result = CommsManager.UserService.VerifySession(agent.AgentID, agent.SessionID); 2468 bool result = CommsManager.UserService.VerifySession(agent.AgentID, agent.SessionID);
2469 m_log.Debug("[CONNECTION BEGIN]: User authentication returned " + result); 2469 m_log.Debug("[CONNECTION BEGIN]: User authentication returned " + result);
2470 if (!result) 2470 if (!result)
2471 reason = String.Format("Failed to authenticate user {0} {1}, access denied.", agent.firstname, agent.lastname); 2471 reason = String.Format("Failed to authenticate user {0} {1}, access denied.", agent.firstname, agent.lastname);
2472 2472
2473 return result; 2473 return result;
@@ -2479,7 +2479,7 @@ namespace OpenSim.Region.Framework.Scenes
2479 2479
2480 if (!m_strictAccessControl) return true; 2480 if (!m_strictAccessControl) return true;
2481 if (Permissions.IsGod(agent.AgentID)) return true; 2481 if (Permissions.IsGod(agent.AgentID)) return true;
2482 2482
2483 2483
2484 if (m_regInfo.EstateSettings.IsBanned(agent.AgentID)) 2484 if (m_regInfo.EstateSettings.IsBanned(agent.AgentID))
2485 { 2485 {
@@ -2490,12 +2490,12 @@ namespace OpenSim.Region.Framework.Scenes
2490 return false; 2490 return false;
2491 } 2491 }
2492 2492
2493 if (!m_regInfo.EstateSettings.PublicAccess && 2493 if (!m_regInfo.EstateSettings.PublicAccess &&
2494 !m_regInfo.EstateSettings.HasAccess(agent.AgentID)) 2494 !m_regInfo.EstateSettings.HasAccess(agent.AgentID))
2495 { 2495 {
2496 m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the estate", 2496 m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the estate",
2497 agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); 2497 agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
2498 reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.", 2498 reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.",
2499 RegionInfo.RegionName); 2499 RegionInfo.RegionName);
2500 return false; 2500 return false;
2501 } 2501 }
@@ -2512,7 +2512,7 @@ namespace OpenSim.Region.Framework.Scenes
2512 // { 2512 // {
2513 // m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user has been banned from land", 2513 // m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user has been banned from land",
2514 // agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); 2514 // agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
2515 // reason = String.Format("Denied access to private region {0}: You are banned from that region.", 2515 // reason = String.Format("Denied access to private region {0}: You are banned from that region.",
2516 // RegionInfo.RegionName); 2516 // RegionInfo.RegionName);
2517 // return false; 2517 // return false;
2518 // } 2518 // }
@@ -2521,7 +2521,7 @@ namespace OpenSim.Region.Framework.Scenes
2521 // { 2521 // {
2522 // m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region", 2522 // m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region",
2523 // agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName); 2523 // agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
2524 // reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.", 2524 // reason = String.Format("Denied access to private region {0}: You are not on the access list for that region.",
2525 // RegionInfo.RegionName); 2525 // RegionInfo.RegionName);
2526 // return false; 2526 // return false;
2527 // } 2527 // }
@@ -2861,7 +2861,7 @@ namespace OpenSim.Region.Framework.Scenes
2861 #endregion 2861 #endregion
2862 2862
2863 #region Other Methods 2863 #region Other Methods
2864 2864
2865 public void SetObjectCapacity(int objects) 2865 public void SetObjectCapacity(int objects)
2866 { 2866 {
2867 // Region specific config overrides global 2867 // Region specific config overrides global
@@ -2875,7 +2875,7 @@ namespace OpenSim.Region.Framework.Scenes
2875 } 2875 }
2876 objectCapacity = objects; 2876 objectCapacity = objects;
2877 } 2877 }
2878 2878
2879 public List<FriendListItem> GetFriendList(string id) 2879 public List<FriendListItem> GetFriendList(string id)
2880 { 2880 {
2881 UUID avatarID; 2881 UUID avatarID;
@@ -2974,7 +2974,7 @@ namespace OpenSim.Region.Framework.Scenes
2974 public override void Show(string[] showParams) 2974 public override void Show(string[] showParams)
2975 { 2975 {
2976 base.Show(showParams); 2976 base.Show(showParams);
2977 2977
2978 switch (showParams[0]) 2978 switch (showParams[0])
2979 { 2979 {
2980 case "users": 2980 case "users":
@@ -2993,9 +2993,9 @@ namespace OpenSim.Region.Framework.Scenes
2993 "Unknown", 2993 "Unknown",
2994 RegionInfo.RegionName); 2994 RegionInfo.RegionName);
2995 } 2995 }
2996 2996
2997 break; 2997 break;
2998 } 2998 }
2999 } 2999 }
3000 3000
3001 #region Script Handling Methods 3001 #region Script Handling Methods
@@ -3055,8 +3055,8 @@ namespace OpenSim.Region.Framework.Scenes
3055 } 3055 }
3056 else if ((parcel.landData.Flags & (uint)Parcel.ParcelFlags.AllowGroupScripts) != 0) 3056 else if ((parcel.landData.Flags & (uint)Parcel.ParcelFlags.AllowGroupScripts) != 0)
3057 { 3057 {
3058 if (part.OwnerID == parcel.landData.OwnerID 3058 if (part.OwnerID == parcel.landData.OwnerID
3059 || (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID) 3059 || (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID)
3060 || Permissions.IsGod(part.OwnerID)) 3060 || Permissions.IsGod(part.OwnerID))
3061 { 3061 {
3062 return true; 3062 return true;