diff options
author | Arthur Valadares | 2009-05-29 21:12:55 +0000 |
---|---|---|
committer | Arthur Valadares | 2009-05-29 21:12:55 +0000 |
commit | 8545621d9b4bbaa1af21b2c2334dedb406a58263 (patch) | |
tree | 5f91d8f72f6a07c1393f2a10bcef5fbbbba4aa6f /OpenSim/Region/Framework/Scenes/Scene.cs | |
parent | * refactor: little tweaks to trigger another build (diff) | |
download | opensim-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/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 234 |
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; |