Selaa lähdekoodia

seems to compile ( tests comented out)

UbitUmarov 8 vuotta sitten
vanhempi
commit
a11edceb00
100 muutettua tiedostoa jossa 772 lisäystä ja 6472 poistoa
  1. 1 1
      OpenSim/Addons/Groups/GroupsModule.cs
  2. 51 167
      OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs
  3. 9 7
      OpenSim/Capabilities/Handlers/GetMesh/GetMeshServerConnector.cs
  4. 0 3
      OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs
  5. 1 1
      OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs
  6. 2 0
      OpenSim/Data/IProfilesData.cs
  7. 5 42
      OpenSim/Data/MySQL/MySQLAssetData.cs
  8. 4 43
      OpenSim/Data/MySQL/MySQLSimulationData.cs
  9. 24 24
      OpenSim/Data/MySQL/MySQLUserProfilesData.cs
  10. 5 0
      OpenSim/Data/PGSQL/PGSQLSimulationData.cs
  11. 1 1
      OpenSim/Data/SQLite/SQLiteSimulationData.cs
  12. 1 2
      OpenSim/Data/SQLite/SQLiteUserProfilesData.cs
  13. 0 4
      OpenSim/Framework/AssetBase.cs
  14. 0 29
      OpenSim/Framework/Communications/RestClient.cs
  15. 25 12
      OpenSim/Framework/EstateSettings.cs
  16. 2 7
      OpenSim/Framework/ISceneAgent.cs
  17. 1 10
      OpenSim/Framework/PluginLoader.cs
  18. 8 21
      OpenSim/Framework/RegionInfo.cs
  19. 52 79
      OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs
  20. 3 9
      OpenSim/Framework/Servers/BaseOpenSimServer.cs
  21. 1 5
      OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
  22. 26 156
      OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
  23. 1 5
      OpenSim/Framework/Servers/Tests/OSHttpTests.cs
  24. 0 4
      OpenSim/Framework/UserProfileData.cs
  25. 8 0
      OpenSim/Framework/UserProfiles.cs
  26. 0 68
      OpenSim/Framework/Util.cs
  27. 1 5
      OpenSim/Framework/VersionInfo.cs
  28. 23 123
      OpenSim/Framework/WebUtil.cs
  29. 0 13
      OpenSim/Region/Application/OpenSim.cs
  30. 0 9
      OpenSim/Region/Application/OpenSimBase.cs
  31. 12 110
      OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
  32. 2 2
      OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCapsModule.cs
  33. 1 29
      OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
  34. 0 9
      OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
  35. 5 45
      OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
  36. 9 24
      OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
  37. 0 15
      OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
  38. 2 0
      OpenSim/Region/ClientStack/Linden/Caps/Tests/WebFetchInvDescModuleTests.cs
  39. 7 197
      OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs
  40. 0 4
      OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
  41. 18 246
      OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
  42. 8 66
      OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
  43. 18 254
      OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
  44. 2 2
      OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
  45. 11 6
      OpenSim/Region/ClientStack/Linden/UDP/Tests/ThrottleTests.cs
  46. 39 232
      OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
  47. 0 5
      OpenSim/Region/ClientStack/RegionApplicationBase.cs
  48. 1 3
      OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
  49. 0 28
      OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
  50. 2 15
      OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
  51. 0 11
      OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs
  52. 8 0
      OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs
  53. 0 25
      OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
  54. 0 7
      OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs
  55. 92 68
      OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
  56. 0 5
      OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs
  57. 1 9
      OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
  58. 1 6
      OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs
  59. 8 440
      OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
  60. 0 7
      OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
  61. 4 33
      OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
  62. 1 3
      OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
  63. 3 11
      OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
  64. 2 17
      OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs
  65. 5 70
      OpenSim/Region/CoreModules/ServiceConnectorsOut/MapImage/MapImageServiceModule.cs
  66. 2 26
      OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
  67. 1 14
      OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs
  68. 3 81
      OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
  69. 1 32
      OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
  70. 14 60
      OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
  71. 17 403
      OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
  72. 2 82
      OpenSim/Region/CoreModules/World/Land/LandObject.cs
  73. 0 12
      OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs
  74. 0 14
      OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs
  75. 0 4
      OpenSim/Region/CoreModules/World/Terrain/FloodBrushes/NoiseArea.cs
  76. 44 492
      OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs
  77. 0 8
      OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs
  78. 4 126
      OpenSim/Region/CoreModules/World/Warp3DMap/TerrainSplat.cs
  79. 0 34
      OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs
  80. 0 74
      OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
  81. 5 366
      OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
  82. 0 24
      OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
  83. 2 0
      OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs
  84. 0 6
      OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs
  85. 0 7
      OpenSim/Region/Framework/Interfaces/IHttpRequests.cs
  86. 0 11
      OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs
  87. 0 5
      OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
  88. 0 10
      OpenSim/Region/Framework/Interfaces/ITerrainModule.cs
  89. 0 4
      OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
  90. 10 118
      OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
  91. 13 12
      OpenSim/Region/Framework/Scenes/SOPVehicle.cs
  92. 34 112
      OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
  93. 0 4
      OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
  94. 65 460
      OpenSim/Region/Framework/Scenes/Scene.cs
  95. 1 602
      OpenSim/Region/Framework/Scenes/SceneBase.cs
  96. 2 58
      OpenSim/Region/Framework/Scenes/SceneGraph.cs
  97. 2 5
      OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
  98. 7 235
      OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
  99. 26 104
      OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
  100. 0 13
      OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs

+ 1 - 1
OpenSim/Addons/Groups/GroupsModule.cs

@@ -1296,7 +1296,7 @@ namespace OpenSim.Groups
                         presence.Grouptitle = Title;
 
                         if (! presence.IsChildAgent)
-                            presence.SendAvatarDataToAllClients();
+                            presence.SendAvatarDataToAllAgents();
                     }
                 }
             }

+ 51 - 167
OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs

@@ -25,37 +25,39 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+using System;
+using System.Collections;
+using System.Collections.Specialized;
+using System.Reflection;
+using System.IO;
+using System.Web;
 using log4net;
+using Nini.Config;
 using OpenMetaverse;
-using OpenMetaverse.Imaging;
+using OpenMetaverse.StructuredData;
 using OpenSim.Framework;
+using OpenSim.Framework.Servers;
 using OpenSim.Framework.Servers.HttpServer;
 using OpenSim.Services.Interfaces;
-using System;
-using System.Collections.Specialized;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.IO;
-using System.Reflection;
-using System.Web;
+using Caps = OpenSim.Framework.Capabilities.Caps;
+
+
+
 
 namespace OpenSim.Capabilities.Handlers
 {
-    public class GetMeshHandler : BaseStreamHandler
+    public class GetMeshHandler
     {
         private static readonly ILog m_log =
                    LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-        
+
         private IAssetService m_assetService;
 
         public const string DefaultFormat = "vnd.ll.mesh";
-        
+
         public GetMeshHandler(IAssetService assService)
         {
             m_assetService = assService;
-            m_RedirectURL = redirectURL;
-            if (m_RedirectURL != null && !m_RedirectURL.EndsWith("/"))
-                m_RedirectURL += "/";
         }
         public Hashtable Handle(Hashtable request)
         {
@@ -67,7 +69,7 @@ namespace OpenSim.Capabilities.Handlers
             ret["int_bytes"] = 0;
             ret["int_lod"] = 0;
             string MeshStr = (string)request["mesh_id"];
-            
+
 
             //m_log.DebugFormat("[GETMESH]: called {0}", MeshStr);
 
@@ -81,122 +83,53 @@ namespace OpenSim.Capabilities.Handlers
             {
                 //                m_log.DebugFormat("[GETMESH]: Received request for mesh id {0}", meshID);
 
-               
+
                 ret = ProcessGetMesh(request, UUID.Zero, null);
-                       
-                
+
+
             }
             else
             {
                 m_log.Warn("[GETMESH]: Failed to parse a mesh_id from GetMesh request: " + (string)request["uri"]);
             }
 
-            
+
             return ret;
         }
         public Hashtable ProcessGetMesh(Hashtable request, UUID AgentId, Caps cap)
         {
-            // Try to parse the texture ID from the request URL
-            NameValueCollection query = HttpUtility.ParseQueryString(httpRequest.Url.Query);
-            string textureStr = query.GetOne("mesh_id");
+            Hashtable responsedata = new Hashtable();
+            responsedata["int_response_code"] = 400; //501; //410; //404;
+            responsedata["content_type"] = "text/plain";
+            responsedata["keepalive"] = false;
+            responsedata["str_response_string"] = "Request wasn't what was expected";
             responsedata["reusecontext"] = false;
             responsedata["int_lod"] = 0;
             responsedata["int_bytes"] = 0;
 
-            if (m_assetService == null)
-            {
-                m_log.Error("[GETMESH]: Cannot fetch mesh " + textureStr + " without an asset service");
-                httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
-            }
-
-            UUID meshID;
-            if (!String.IsNullOrEmpty(textureStr) && UUID.TryParse(textureStr, out meshID))
-            {
-                // OK, we have an array with preferred formats, possibly with only one entry
-
-                httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
-                AssetBase mesh;
+            string meshStr = string.Empty;
 
-                if (!String.IsNullOrEmpty(m_RedirectURL))
-                {
-                    // Only try to fetch locally cached meshes. Misses are redirected
-                    mesh = m_assetService.GetCached(meshID.ToString());
+            if (request.ContainsKey("mesh_id"))
+                meshStr = request["mesh_id"].ToString();
 
-                    if (mesh != null)
-                    {
-                        if (mesh.Type != (sbyte)AssetType.Mesh)
-                        {
-                            httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
-                        }
-                        WriteMeshData(httpRequest, httpResponse, mesh);
-                    }
-                    else
-                    {
-                        string textureUrl = m_RedirectURL + "?mesh_id="+ meshID.ToString();
-                        m_log.Debug("[GETMESH]: Redirecting mesh request to " + textureUrl);
-                        httpResponse.StatusCode = (int)OSHttpStatusCode.RedirectMovedPermanently;
-                        httpResponse.RedirectLocation = textureUrl;
-                        return null;
-                    }
-                }
-                else // no redirect
+            UUID meshID = UUID.Zero;
+            if (!String.IsNullOrEmpty(meshStr) && UUID.TryParse(meshStr, out meshID))
+            {
+                if (m_assetService == null)
                 {
-                    // try the cache
-                    mesh = m_assetService.GetCached(meshID.ToString());
-
-                    if (mesh == null)
-                    {
-                        // Fetch locally or remotely. Misses return a 404
-                        mesh = m_assetService.Get(meshID.ToString());
-
-                        if (mesh != null)
-                        {
-                            if (mesh.Type != (sbyte)AssetType.Mesh)
-                            {
-                                httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
-                                return null;
-                            }
-                            WriteMeshData(httpRequest, httpResponse, mesh);
-                            return null;
-                        }
-                   }
-                   else // it was on the cache
-                   {
-                       if (mesh.Type != (sbyte)AssetType.Mesh)
-                       {
-                           httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
-                           return null;
-                       }
-                       WriteMeshData(httpRequest, httpResponse, mesh);
-                       return null;
-                   }
+                    responsedata["int_response_code"] = 404; //501; //410; //404;
+                    responsedata["content_type"] = "text/plain";
+                    responsedata["keepalive"] = false;
+                    responsedata["str_response_string"] = "The asset service is unavailable.  So is your mesh.";
+                    responsedata["reusecontext"] = false;
+                    return responsedata;
                 }
 
-                // not found
-                httpResponse.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
-                return null;
-            }
-            else
-            {
-                m_log.Warn("[GETTEXTURE]: Failed to parse a mesh_id from GetMesh request: " + httpRequest.Url);
-            }
-
-            return null;
-        }
-
-        private void WriteMeshData(IOSHttpRequest request, IOSHttpResponse response, AssetBase texture)
-        {
-            string range = request.Headers.GetOne("Range");
+                AssetBase mesh = m_assetService.Get(meshID.ToString());
 
-            if (!String.IsNullOrEmpty(range))
-            {
-                // Range request
-                int start, end;
-                if (TryParseRange(range, out start, out end))
+                if (mesh != null)
                 {
-                    // Before clamping start make sure we can satisfy it in order to avoid
-                    // sending back the last byte instead of an error status
-                    if (start >= texture.Data.Length)
+                    if (mesh.Type == (SByte)AssetType.Mesh)
                     {
 
                         Hashtable headers = new Hashtable();
@@ -212,12 +145,12 @@ namespace OpenSim.Capabilities.Handlers
 
                         if (!String.IsNullOrEmpty(range)) // Mesh Asset LOD // Physics
                         {
-                             // Range request
+                            // Range request
                             int start, end;
                             if (TryParseRange(range, out start, out end))
                             {
-                                 // Before clamping start make sure we can satisfy it in order to avoid
-                    // sending back the last byte instead of an error status
+                                // Before clamping start make sure we can satisfy it in order to avoid
+                                // sending back the last byte instead of an error status
                                 if (start >= mesh.Data.Length)
                                 {
                                     responsedata["int_response_code"] = 404; //501; //410; //404;
@@ -249,20 +182,20 @@ namespace OpenSim.Capabilities.Handlers
                                         responsedata["int_lod"] = 2;
                                     }
 
-                                    
+
                                     if (start == 0 && len == mesh.Data.Length) // well redudante maybe
                                     {
-                                        responsedata["int_response_code"] = (int) System.Net.HttpStatusCode.OK;
+                                        responsedata["int_response_code"] = (int)System.Net.HttpStatusCode.OK;
                                         responsedata["bin_response_data"] = mesh.Data;
                                         responsedata["int_bytes"] = mesh.Data.Length;
                                         responsedata["reusecontext"] = false;
                                         responsedata["int_lod"] = 3;
-                                        
+
                                     }
                                     else
                                     {
                                         responsedata["int_response_code"] =
-                                            (int) System.Net.HttpStatusCode.PartialContent;
+                                            (int)System.Net.HttpStatusCode.PartialContent;
                                         headers["Content-Range"] = String.Format("bytes {0}-{1}/{2}", start, end,
                                                                                  mesh.Data.Length);
 
@@ -293,6 +226,7 @@ namespace OpenSim.Capabilities.Handlers
                             responsedata["int_lod"] = 3;
                         }
                     }
+                    // Optionally add additional mesh types here
                     else
                     {
                         responsedata["int_response_code"] = 404; //501; //410; //404;
@@ -315,58 +249,8 @@ namespace OpenSim.Capabilities.Handlers
                     return responsedata;
                 }
             }
-            else 
-            {
-                // Full content request
-                response.StatusCode = (int)System.Net.HttpStatusCode.OK;
-                response.ContentLength = texture.Data.Length;
-                response.ContentType = "application/vnd.ll.mesh";
-                response.Body.Write(texture.Data, 0, texture.Data.Length);
-            }
-        }
 
-        /// <summary>
-        /// Parse a range header.
-        /// </summary>
-        /// <remarks>
-        /// As per http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,
-        /// this obeys range headers with two values (e.g. 533-4165) and no second value (e.g. 533-).
-        /// Where there is no value, -1 is returned.
-        /// FIXME: Need to cover the case where only a second value is specified (e.g. -4165), probably by returning -1
-        /// for start.</remarks>
-        /// <returns></returns>
-        /// <param name='header'></param>
-        /// <param name='start'>Start of the range.  Undefined if this was not a number.</param>
-        /// <param name='end'>End of the range.  Will be -1 if no end specified.  Undefined if there was a raw string but this was not a number.</param>
-        private bool TryParseRange(string header, out int start, out int end)
-        {
-            start = end = 0;
-
-            if (header.StartsWith("bytes="))
-            {
-                string[] rangeValues = header.Substring(6).Split('-');
-
-                if (rangeValues.Length == 2)
-                {
-                    if (!Int32.TryParse(rangeValues[0], out start))
-                        return false;
-
-                    string rawEnd = rangeValues[1];
-
-                    if (rawEnd == "")
-                    {
-                        end = -1;
-                        return true;
-                    }
-                    else if (Int32.TryParse(rawEnd, out end))
-                    {
-                        return true;
-                    }
-                }
-            }
-
-            start = end = 0;
-            return false;
+            return responsedata;
         }
         private bool TryParseRange(string header, out int start, out int end)
         {

+ 9 - 7
OpenSim/Capabilities/Handlers/GetMesh/GetMeshServerConnector.cs

@@ -64,13 +64,15 @@ namespace OpenSim.Capabilities.Handlers
 
             string rurl = serverConfig.GetString("GetMeshRedirectURL");
 
-            server.AddStreamHandler(
-                new GetTextureHandler("/CAPS/GetMesh/" /*+ UUID.Random() */, m_AssetService, "GetMesh", null, rurl));
-
-            rurl = serverConfig.GetString("GetMesh2RedirectURL");
-
-            server.AddStreamHandler(
-                new GetTextureHandler("/CAPS/GetMesh2/" /*+ UUID.Random() */, m_AssetService, "GetMesh2", null, rurl));
+            GetMeshHandler gmeshHandler = new GetMeshHandler(m_AssetService);
+            IRequestHandler reqHandler
+                = new RestHTTPHandler(
+                    "GET",
+                    "/CAPS/" + UUID.Random(),
+                    httpMethod => gmeshHandler.ProcessGetMesh(httpMethod, UUID.Zero, null),
+                    "GetMesh",
+                    null);
+            server.AddStreamHandler(reqHandler); ;
         }
     }
 }

+ 0 - 3
OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs

@@ -63,9 +63,6 @@ namespace OpenSim.Capabilities.Handlers
         public GetTextureHandler(IAssetService assService)
         {
             m_assetService = assService;
-            m_RedirectURL = redirectURL;
-            if (m_RedirectURL != null && !m_RedirectURL.EndsWith("/"))
-                m_RedirectURL += "/";
         }
 
         public Hashtable Handle(Hashtable request)

+ 1 - 1
OpenSim/Capabilities/Handlers/GetTexture/GetTextureServerConnector.cs

@@ -66,7 +66,7 @@ namespace OpenSim.Capabilities.Handlers
             string rurl = serverConfig.GetString("GetTextureRedirectURL");
             ;
             server.AddStreamHandler(
-                new GetTextureHandler("/CAPS/GetTexture/" /*+ UUID.Random() */, m_AssetService, "GetTexture", null, rurl));
+                new GetTextureHandler("/CAPS/GetTexture/" */ /*+ UUID.Random() */ /*, m_AssetService, "GetTexture", null, rurl));
         }
     }
 }

+ 2 - 0
OpenSim/Data/IProfilesData.cs

@@ -48,6 +48,8 @@ namespace OpenSim.Data
         bool UpdateAvatarProperties(ref UserProfileProperties props, ref string result);
         bool UpdateAvatarInterests(UserProfileProperties up, ref string result);
         bool GetClassifiedInfo(ref UserClassifiedAdd ad, ref string result);
+        bool UpdateUserPreferences(ref UserPreferences pref, ref string result);
+        bool GetUserPreferences(ref UserPreferences pref, ref string result);
         bool GetUserAppData(ref UserAppData props, ref string result);
         bool SetUserAppData(UserAppData props, ref string result);
         OSDArray GetUserImageAssets(UUID avatarId);

+ 5 - 42
OpenSim/Data/MySQL/MySQLAssetData.cs

@@ -202,52 +202,15 @@ namespace OpenSim.Data.MySQL
                             cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags);
                             cmd.Parameters.AddWithValue("?data", asset.Data);
                             cmd.ExecuteNonQuery();
-                        }
-    
-                        string assetDescription = asset.Description;
-                        if (asset.Description.Length > 64)
-                        {
-                            assetDescription = asset.Description.Substring(0, 64);
-                            m_log.WarnFormat(
-                                "[ASSET DB]: Description '{0}' for asset {1} truncated from {2} to {3} characters on add", 
-                                asset.Description, asset.ID, asset.Description.Length, assetDescription.Length);
-                        }
-    
-                        try
-                        {
-                            using (cmd)
-                            {
-                                // create unix epoch time
-                                int now = (int)Utils.DateTimeToUnixTime(DateTime.UtcNow);
-                                cmd.Parameters.AddWithValue("?id", asset.ID);
-                                cmd.Parameters.AddWithValue("?name", assetName);
-                                cmd.Parameters.AddWithValue("?description", assetDescription);
-                                cmd.Parameters.AddWithValue("?assetType", asset.Type);
-                                cmd.Parameters.AddWithValue("?local", asset.Local);
-                                cmd.Parameters.AddWithValue("?temporary", asset.Temporary);
-                                cmd.Parameters.AddWithValue("?create_time", now);
-                                cmd.Parameters.AddWithValue("?access_time", now);
-                                cmd.Parameters.AddWithValue("?CreatorID", asset.Metadata.CreatorID);
-                                cmd.Parameters.AddWithValue("?asset_flags", (int)asset.Flags);
-                                cmd.Parameters.AddWithValue("?data", asset.Data);
-                                cmd.ExecuteNonQuery();
-                                return true;
-                            }
-                        }
-                        catch (Exception e)
-                        {
-                            m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}",
-                                asset.FullID, asset.Name, e.Message);
-                            return false;
+                            return true;
                         }
                     }
+
                     catch (Exception e)
                     {
-                        m_log.Error(
-                            string.Format(
-                                "[ASSET DB]: MySQL failure creating asset {0} with name {1}.  Exception  ",
-                                asset.FullID, asset.Name)
-                            , e);
+                        m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}",
+                            asset.FullID, asset.Name, e.Message);
+                        return false;
                     }
                 }
             }

+ 4 - 43
OpenSim/Data/MySQL/MySQLSimulationData.cs

@@ -1105,7 +1105,7 @@ namespace OpenSim.Data.MySQL
                         "use_estate_sun, fixed_sun, sun_position, " +
                         "covenant, covenant_datetime, Sandbox, sunvectorx, sunvectory, " +
                         "sunvectorz, loaded_creation_datetime, " +
-                        "loaded_creation_id, map_tile_ID, " +
+                        "loaded_creation_id, map_tile_ID, block_search, casino, " +
                         "TelehubObject, parcel_tile_ID) " +
                          "values (?RegionUUID, ?BlockTerraform, " +
                         "?BlockFly, ?AllowDamage, ?RestrictPushing, " +
@@ -1122,53 +1122,14 @@ namespace OpenSim.Data.MySQL
                         "?SunPosition, ?Covenant, ?CovenantChangedDateTime, ?Sandbox, " +
                         "?SunVectorX, ?SunVectorY, ?SunVectorZ, " +
                         "?LoadedCreationDateTime, ?LoadedCreationID, " +
-                        "?TerrainImageID, " +
+                        "?TerrainImageID, ?block_search, ?casino, " +
                         "?TelehubObject, ?ParcelImageID)";
 
-                    using (MySqlCommand cmd = dbcon.CreateCommand())
-                    {
-                        cmd.CommandText = "replace into regionsettings (regionUUID, " +
-                            "block_terraform, block_fly, allow_damage, " +
-                            "restrict_pushing, allow_land_resell, " +
-                            "allow_land_join_divide, block_show_in_search, " +
-                            "agent_limit, object_bonus, maturity, " +
-                            "disable_scripts, disable_collisions, " +
-                            "disable_physics, terrain_texture_1, " +
-                            "terrain_texture_2, terrain_texture_3, " +
-                            "terrain_texture_4, elevation_1_nw, " +
-                            "elevation_2_nw, elevation_1_ne, " +
-                            "elevation_2_ne, elevation_1_se, " +
-                            "elevation_2_se, elevation_1_sw, " +
-                            "elevation_2_sw, water_height, " +
-                            "terrain_raise_limit, terrain_lower_limit, " +
-                            "use_estate_sun, fixed_sun, sun_position, " +
-                            "covenant, covenant_datetime, Sandbox, sunvectorx, sunvectory, " +
-                            "sunvectorz, loaded_creation_datetime, " +
-                            "loaded_creation_id, map_tile_ID, block_search, casino, " +
-                            "TelehubObject, parcel_tile_ID) " +
-                             "values (?RegionUUID, ?BlockTerraform, " +
-                            "?BlockFly, ?AllowDamage, ?RestrictPushing, " +
-                            "?AllowLandResell, ?AllowLandJoinDivide, " +
-                            "?BlockShowInSearch, ?AgentLimit, ?ObjectBonus, " +
-                            "?Maturity, ?DisableScripts, ?DisableCollisions, " +
-                            "?DisablePhysics, ?TerrainTexture1, " +
-                            "?TerrainTexture2, ?TerrainTexture3, " +
-                            "?TerrainTexture4, ?Elevation1NW, ?Elevation2NW, " +
-                            "?Elevation1NE, ?Elevation2NE, ?Elevation1SE, " +
-                            "?Elevation2SE, ?Elevation1SW, ?Elevation2SW, " +
-                            "?WaterHeight, ?TerrainRaiseLimit, " +
-                            "?TerrainLowerLimit, ?UseEstateSun, ?FixedSun, " +
-                            "?SunPosition, ?Covenant, ?CovenantChangedDateTime, ?Sandbox, " +
-                            "?SunVectorX, ?SunVectorY, ?SunVectorZ, " +
-                            "?LoadedCreationDateTime, ?LoadedCreationID, " +
-                            "?TerrainImageID, ?block_search, ?casino, " +
-                            "?TelehubObject, ?ParcelImageID)";
-
                     ExecuteNonQuery(cmd);
                 }
-            }
 
-            SaveSpawnPoints(rs);
+                SaveSpawnPoints(rs);
+            }
         }
 
         public virtual List<LandData> LoadLandObjects(UUID regionUUID)

+ 24 - 24
OpenSim/Data/MySQL/MySQLUserProfilesData.cs

@@ -896,16 +896,16 @@ namespace OpenSim.Data.MySQL
         }
         
         #region User Preferences
-        public OSDArray GetUserPreferences(UUID avatarId)
+        public bool GetUserPreferences(ref UserPreferences pref, ref string result)
         {
             string query = string.Empty;
-            
+
             query += "SELECT imviaemail,visible,email FROM ";
             query += "usersettings WHERE ";
             query += "useruuid = ?Id";
-            
+
             OSDArray data = new OSDArray();
-            
+
             try
             {
                 using (MySqlConnection dbcon = new MySqlConnection(ConnectionString))
@@ -913,33 +913,30 @@ namespace OpenSim.Data.MySQL
                     dbcon.Open();
                     using (MySqlCommand cmd = new MySqlCommand(query, dbcon))
                     {
-                        cmd.Parameters.AddWithValue("?Id", avatarId.ToString());
-                        
+                        cmd.Parameters.AddWithValue("?Id", pref.UserId.ToString());
+
                         using (MySqlDataReader reader = cmd.ExecuteReader())
                         {
-                            if(reader.HasRows)
+                            if (reader.HasRows)
                             {
                                 reader.Read();
-                                OSDMap record = new OSDMap();
-                                
-                                record.Add("imviaemail",OSD.FromString((string)reader["imviaemail"]));
-                                record.Add("visible",OSD.FromString((string)reader["visible"]));
-                                record.Add("email",OSD.FromString((string)reader["email"]));
-                                data.Add(record);
+                                bool.TryParse((string)reader["imviaemail"], out pref.IMViaEmail);
+                                bool.TryParse((string)reader["visible"], out pref.Visible);
+                                pref.EMail = (string)reader["email"];
                             }
                             else
                             {
                                 dbcon.Close();
                                 dbcon.Open();
-                                
+
                                 query = "INSERT INTO usersettings VALUES ";
                                 query += "(?uuid,'false','false', ?Email)";
 
                                 using (MySqlCommand put = new MySqlCommand(query, dbcon))
                                 {
-                                    
-//                                    put.Parameters.AddWithValue("?Email", pref.EMail);
-//                                    put.Parameters.AddWithValue("?uuid", pref.UserId.ToString());
+
+                                    put.Parameters.AddWithValue("?Email", pref.EMail);
+                                    put.Parameters.AddWithValue("?uuid", pref.UserId.ToString());
 
                                     put.ExecuteNonQuery();
                                 }
@@ -952,20 +949,22 @@ namespace OpenSim.Data.MySQL
             {
                 m_log.ErrorFormat("[PROFILES_DATA]" +
                                  ": Get preferences exception {0}", e.Message);
+                result = e.Message;
+                return false;
             }
-            return data;
+            return true;
         }
-        
-        public bool UpdateUserPreferences(bool emailIm, bool visible, UUID avatarId )
-        {           
+
+        public bool UpdateUserPreferences(ref UserPreferences pref, ref string result)
+        {
             string query = string.Empty;
-            
-            query += "UPDATE userpsettings SET ";
+
+            query += "UPDATE usersettings SET ";
             query += "imviaemail=?ImViaEmail, ";
             query += "visible=?Visible, ";
             query += "email=?EMail ";
             query += "WHERE useruuid=?uuid";
-            
+
             try
             {
                 using (MySqlConnection dbcon = new MySqlConnection(ConnectionString))
@@ -986,6 +985,7 @@ namespace OpenSim.Data.MySQL
             {
                 m_log.ErrorFormat("[PROFILES_DATA]" +
                     ": UserPreferencesUpdate exception {0} {1}", e.Message, e.InnerException);
+                result = e.Message;
                 return false;
             }
             return true;

+ 5 - 0
OpenSim/Data/PGSQL/PGSQLSimulationData.cs

@@ -2227,6 +2227,11 @@ namespace OpenSim.Data.PGSQL
             }
         }
 
+        public UUID[] GetObjectIDs(UUID regionID)
+        {
+            return new UUID[0];
+        }
+
         public void SaveExtra(UUID regionID, string name, string value)
         {
         }

+ 1 - 1
OpenSim/Data/SQLite/SQLiteSimulationData.cs

@@ -2013,7 +2013,7 @@ namespace OpenSim.Data.SQLite
             return entry;
         }
 
-        /*
+ 
         /// <summary>
         ///
         /// </summary>

+ 1 - 2
OpenSim/Data/SQLite/SQLiteUserProfilesData.cs

@@ -741,7 +741,7 @@ namespace OpenSim.Data.SQLite
             return true;
         }
 
-        /*
+ 
         public bool UpdateUserPreferences(ref UserPreferences pref, ref string result)
         {           
             string query = string.Empty;
@@ -826,7 +826,6 @@ namespace OpenSim.Data.SQLite
             }
             return true;
         }
-        */
 
         public bool GetUserAppData(ref UserAppData props, ref string result)
         {

+ 0 - 4
OpenSim/Framework/AssetBase.cs

@@ -150,12 +150,8 @@ namespace OpenSim.Framework
                      Type == (sbyte)AssetType.Folder ||
                      Type == (sbyte)AssetType.ImageJPEG ||
                      Type == (sbyte)AssetType.ImageTGA ||
-<<<<<<< HEAD
-                     Type == (sbyte)AssetType.LSLBytecode);
-=======
                      Type == (sbyte)AssetType.Mesh ||
                      Type == (sbyte) AssetType.LSLBytecode);
->>>>>>> avn/ubitvar
             }
         }
 

+ 0 - 29
OpenSim/Framework/Communications/RestClient.cs

@@ -395,26 +395,7 @@ namespace OpenSim.Framework.Communications
                     return null;
                 }
 
-<<<<<<< HEAD
-=======
-                using (Stream src = _response.GetResponseStream())
-                {
-                    int length = src.Read(_readbuf, 0, BufferSize);
-                    while (length > 0)
-                    {
-                        _resource.Write(_readbuf, 0, length);
-                        length = src.Read(_readbuf, 0, BufferSize);
-                    }
-                }
 
-                // TODO! Implement timeout, without killing the server
-                // this line implements the timeout, if there is a timeout, the callback fires and the request becomes aborted
-                //ThreadPool.RegisterWaitForSingleObject(responseAsyncResult.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), _request, DefaultTimeout, true);
-
-//                _allDone.WaitOne();
-                if (_response != null)
-                    _response.Close();
->>>>>>> avn/ubitvar
                 if (_asyncException != null)
                     throw _asyncException;
 
@@ -444,7 +425,6 @@ namespace OpenSim.Framework.Communications
                 auth.AddAuthorization(_request.Headers);
 
             src.Seek(0, SeekOrigin.Begin);
-<<<<<<< HEAD
 
             int reqnum = WebUtil.RequestNumber++;
             if (WebUtil.DebugLevel >= 3)
@@ -452,16 +432,7 @@ namespace OpenSim.Framework.Communications
             if (WebUtil.DebugLevel >= 5)
                 WebUtil.LogOutgoingDetail(string.Format("SEND {0}: ", reqnum), src);
 
-            Stream dst = _request.GetRequestStream();
-
-            byte[] buf = new byte[1024];
-            int length = src.Read(buf, 0, 1024);
-            while (length > 0)
-=======
-            m_log.Info("[REST]: Seek is ok");
-
             using (Stream dst = _request.GetRequestStream())
->>>>>>> avn/ubitvar
             {
                 m_log.Info("[REST]: GetRequestStream is ok");
 

+ 25 - 12
OpenSim/Framework/EstateSettings.cs

@@ -363,30 +363,43 @@ namespace OpenSim.Framework
             return false;
         }
 
+        public bool IsBanned(UUID avatarID)
+        {
+            if (!IsEstateManagerOrOwner(avatarID))
+            {
+                foreach (EstateBan ban in l_EstateBans)
+                    if (ban.BannedUserID == avatarID)
+                        return true;
+            }
+            return false;
+        }
+
         public bool IsBanned(UUID avatarID, int userFlags)
         {
-            foreach (EstateBan ban in l_EstateBans)
+            if (!IsEstateManagerOrOwner(avatarID))
+            {
+                foreach (EstateBan ban in l_EstateBans)
                 if (ban.BannedUserID == avatarID)
                     return true;
 
-            if (!IsEstateManagerOrOwner(avatarID) && !HasAccess(avatarID))
-            {
-                if (DenyMinors)
+                if (!HasAccess(avatarID))
                 {
-                    if ((userFlags & 32) == 0)
+                    if (DenyMinors)
                     {
-                        return true;
+                        if ((userFlags & 32) == 0)
+                        {
+                            return true;
+                        }
                     }
-                }
-                if (DenyAnonymous)
-                {
-                    if ((userFlags & 4) == 0)
+                    if (DenyAnonymous)
                     {
-                        return true;
+                        if ((userFlags & 4) == 0)
+                        {
+                            return true;
+                        }
                     }
                 }
             }
-
             return false;
         }
 

+ 2 - 7
OpenSim/Framework/ISceneAgent.cs

@@ -65,20 +65,15 @@ namespace OpenSim.Framework
         /// </remarks>
         AvatarAppearance Appearance { get; set; }
 
-        /// <summary>
-        /// Set if initial data about the scene (avatars, objects) has been sent to the client.
-        /// </summary>
-        bool SentInitialDataToClient { get; }
-
         /// <summary>
         /// Send initial scene data to the client controlling this agent
         /// </summary>
         /// <remarks>
         /// This includes scene object data and the appearance data of other avatars.
         /// </remarks>
-        void SendInitialDataToClient();
+        void SendInitialDataToMe();
 
-        /// <summary>
+         /// <summary>
         /// Direction in which the scene presence is looking.
         /// </summary>
         /// <remarks>Will be Vector3.Zero for a child agent.</remarks>

+ 1 - 10
OpenSim/Framework/PluginLoader.cs

@@ -245,15 +245,6 @@ namespace OpenSim.Framework
             // occasionally seems to corrupt its addin cache
             // Hence, as a temporary solution we'll remove it before each startup
 
-<<<<<<< HEAD
-            try
-            {
-                if (Directory.Exists(dir + "/addin-db-000"))
-                    Directory.Delete(dir + "/addin-db-000", true);
-
-                if (Directory.Exists(dir + "/addin-db-001"))
-                    Directory.Delete(dir + "/addin-db-001", true);
-=======
             string customDir = Environment.GetEnvironmentVariable ("MONO_ADDINS_REGISTRY");
             string v0 = "addin-db-000";
             string v1 = "addin-db-001";
@@ -269,7 +260,7 @@ namespace OpenSim.Framework
 
                 if (Directory.Exists(v1))
                     Directory.Delete(v1, true);
->>>>>>> avn/ubitvar
+
             }
             catch (IOException)
             {

+ 8 - 21
OpenSim/Framework/RegionInfo.cs

@@ -102,12 +102,11 @@ namespace OpenSim.Framework
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
         private static readonly string LogHeader = "[REGION INFO]";
 
-<<<<<<< HEAD
-=======
+
         public bool commFailTF = false;
         public ConfigurationMember configMember;
         public string DataStore = String.Empty;
->>>>>>> avn/ubitvar
+
         public string RegionFile = String.Empty;
         public bool isSandbox = false;
         public bool Persistent = true;
@@ -534,11 +533,7 @@ namespace OpenSim.Framework
             return null;
         }
 
-<<<<<<< HEAD
-        private void SetExtraSetting(string key, string value)
-=======
         public void SetExtraSetting(string key, string value)
->>>>>>> avn/ubitvar
         {
             string keylower = key.ToLower();
             m_extraSettings[keylower] = value;
@@ -834,22 +829,16 @@ namespace OpenSim.Framework
             string location = String.Format("{0},{1}", RegionLocX, RegionLocY);
             config.Set("Location", location);
 
-<<<<<<< HEAD
-            if (RegionSizeX > 0)
-=======
             if (DataStore != String.Empty)
                 config.Set("Datastore", DataStore);
 
             if (RegionSizeX != Constants.RegionSize || RegionSizeY != Constants.RegionSize)
             {
->>>>>>> avn/ubitvar
                 config.Set("SizeX", RegionSizeX);
-
-            if (RegionSizeY > 0)
                 config.Set("SizeY", RegionSizeY);
-
-//            if (RegionSizeZ > 0)
-//                config.Set("SizeZ", RegionSizeZ);
+                //            if (RegionSizeZ > 0)
+                //                config.Set("SizeZ", RegionSizeZ);
+            }
 
             config.Set("InternalAddress", m_internalEndPoint.Address.ToString());
             config.Set("InternalPort", m_internalEndPoint.Port);
@@ -920,8 +909,6 @@ namespace OpenSim.Framework
                 throw new Exception("Invalid file type for region persistence.");
         }
 
-<<<<<<< HEAD
-=======
         public void loadConfigurationOptionsFromMe()
         {
             configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_UUID_NULL_FREE,
@@ -984,7 +971,7 @@ namespace OpenSim.Framework
                                                 "Max prims an object will hold", m_linksetCapacity.ToString(), true);
 
             configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
-                                                "Max avatars this sim will hold", m_agentCapacity.ToString(), true);
+                                                "Max avatars this sim will hold",AgentCapacity.ToString(), true);
 
             configMember.addConfigurationOption("scope_id", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
                                                 "Scope ID for this region", ScopeID.ToString(), true);
@@ -1131,7 +1118,7 @@ namespace OpenSim.Framework
                     m_linksetCapacity = (int)configuration_result;
                     break;
                 case "agent_capacity":
-                    m_agentCapacity = (int)configuration_result;
+                    AgentCapacity = (int)configuration_result;
                     break;
                 case "scope_id":
                     ScopeID = (UUID)configuration_result;
@@ -1147,7 +1134,7 @@ namespace OpenSim.Framework
             return true;
         }
 
->>>>>>> avn/ubitvar
+
         public void SaveLastMapUUID(UUID mapUUID)
         {
             lastMapUUID = mapUUID;

+ 52 - 79
OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs

@@ -58,7 +58,7 @@ namespace OpenSim.Framework.RegionLoader.Web
             }
             else
             {
-                IConfig startupConfig = (IConfig) m_configSource.Configs["Startup"];
+                IConfig startupConfig = (IConfig)m_configSource.Configs["Startup"];
                 string url = startupConfig.GetString("regionload_webserver_url", String.Empty).Trim();
                 bool allowRegionless = startupConfig.GetBoolean("allow_regionless", false);
 
@@ -69,101 +69,74 @@ namespace OpenSim.Framework.RegionLoader.Web
                 }
                 else
                 {
-					while(tries > 0)
-					{
-						RegionInfo[] regionInfos = new RegionInfo[] {};
-						int regionCount = 0;
-						HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(url);
-						webRequest.Timeout = 30000; //30 Second Timeout
-						m_log.DebugFormat("[WEBLOADER]: Sending download request to {0}", url);
-
-						try
-						{
-							HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse();
-							m_log.Debug("[WEBLOADER]: Downloading region information...");
-							StreamReader reader = new StreamReader(webResponse.GetResponseStream());
-							string xmlSource = String.Empty;
-							string tempStr = reader.ReadLine();
-							while (tempStr != null)
-							{
-								xmlSource = xmlSource + tempStr;
-								tempStr = reader.ReadLine();
-							}
-							m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " +
-										xmlSource.Length);
-							XmlDocument xmlDoc = new XmlDocument();
-							xmlDoc.LoadXml(xmlSource);
-							if (xmlDoc.FirstChild.Name == "Nini")
-                            {
-								regionCount = xmlDoc.FirstChild.ChildNodes.Count;
-		
-								if (regionCount > 0)
-								{
-									regionInfos = new RegionInfo[regionCount];
-									int i;
-									for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++)
-									{
-										m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml);
-										regionInfos[i] =
-											new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false,m_configSource);
-									}
-								}
-							}
-						}
-						catch (WebException ex)
-						{
-							if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound)
-							{
-								if (!allowRegionless)
-									throw ex;
-							}
-							else
-								throw ex;
-						}
+                    while (tries > 0)
+                    {
+                        RegionInfo[] regionInfos = new RegionInfo[] { };
+                        int regionCount = 0;
+                        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
+                        webRequest.Timeout = 30000; //30 Second Timeout
+                        m_log.DebugFormat("[WEBLOADER]: Sending download request to {0}", url);
 
-<<<<<<< HEAD
-                        m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " +
-                                    xmlSource.Length);
-                        XmlDocument xmlDoc = new XmlDocument();
-                        xmlDoc.LoadXml(xmlSource);
-                        if (xmlDoc.FirstChild.Name == "Nini")
+                        try
                         {
-                            regionCount = xmlDoc.FirstChild.ChildNodes.Count;
-    
-                            if (regionCount > 0)
+                            HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
+                            m_log.Debug("[WEBLOADER]: Downloading region information...");
+                            StreamReader reader = new StreamReader(webResponse.GetResponseStream());
+                            string xmlSource = String.Empty;
+                            string tempStr = reader.ReadLine();
+                            while (tempStr != null)
+                            {
+                                xmlSource = xmlSource + tempStr;
+                                tempStr = reader.ReadLine();
+                            }
+                            m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " +
+                                        xmlSource.Length);
+                            XmlDocument xmlDoc = new XmlDocument();
+                            xmlDoc.LoadXml(xmlSource);
+                            if (xmlDoc.FirstChild.Name == "Nini")
                             {
-                                regionInfos = new RegionInfo[regionCount];
-                                int i;
-                                for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++)
+                                regionCount = xmlDoc.FirstChild.ChildNodes.Count;
+
+                                if (regionCount > 0)
                                 {
-                                    m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml);
-                                    regionInfos[i] =
-                                        new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false,m_configSource);
+                                    regionInfos = new RegionInfo[regionCount];
+                                    int i;
+                                    for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++)
+                                    {
+                                        m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml);
+                                        regionInfos[i] =
+                                            new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i], false, m_configSource);
+                                    }
                                 }
                             }
                         }
-                    }
-                    catch (WebException ex)
-                    {
-                        using (HttpWebResponse response = (HttpWebResponse)ex.Response)
-=======
-						if (regionCount > 0 | allowRegionless)
-							return regionInfos;
+                        catch (WebException ex)
+                        {
+                            if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound)
+                            {
+                                if (!allowRegionless)
+                                    throw ex;
+                            }
+                            else
+                                throw ex;
+                        }
+
+                        if (regionCount > 0 | allowRegionless)
+                            return regionInfos;
 
                         m_log.Debug("[WEBLOADER]: Request yielded no regions.");
                         tries--;
                         if (tries > 0)
->>>>>>> avn/ubitvar
                         {
                             m_log.Debug("[WEBLOADER]: Retrying");
                             System.Threading.Thread.Sleep(wait);
                         }
-					}
+                    }
 
-					m_log.Error("[WEBLOADER]: No region configs were available.");
-					return null;
+                    m_log.Error("[WEBLOADER]: No region configs were available.");
+                    return null;
                 }
             }
         }
     }
-}
+}

+ 3 - 9
OpenSim/Framework/Servers/BaseOpenSimServer.cs

@@ -65,12 +65,9 @@ namespace OpenSim.Framework.Servers
         /// This will control a periodic log printout of the current 'show stats' (if they are active) for this
         /// server.
         /// </summary>
-<<<<<<< HEAD
+
         private int m_periodDiagnosticTimerMS = 60 * 60 * 1000;
         private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000);
-=======
-//        private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000);
->>>>>>> avn/ubitvar
         
         /// <summary>
         /// Random uuid for private data 
@@ -88,11 +85,8 @@ namespace OpenSim.Framework.Servers
             // Random uuid for private data
             m_osSecret = UUID.Random().ToString();
 
-<<<<<<< HEAD
-=======
-//            m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics);
-//            m_periodicDiagnosticsTimer.Enabled = true;
->>>>>>> avn/ubitvar
+            m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics);
+            m_periodicDiagnosticsTimer.Enabled = true;
         }
         
         /// <summary>

+ 1 - 5
OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs

@@ -1947,14 +1947,10 @@ namespace OpenSim.Framework.Servers.HttpServer
                 m_httpListener2.Start(64);
 
                 // Long Poll Service Manager with 3 worker threads a 25 second timeout for no events
-<<<<<<< HEAD
+
                 PollServiceRequestManager = new PollServiceRequestManager(this, performPollResponsesAsync, 3, 25000);
                 PollServiceRequestManager.Start();
 
-=======
-                m_PollServiceManager = new PollServiceRequestManager(this, 4, 25000);
-                m_PollServiceManager.Start();
->>>>>>> avn/ubitvar
                 HTTPDRunning = true;
 
                 //HttpListenerContext context;

+ 26 - 156
OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs

@@ -74,16 +74,11 @@ namespace OpenSim.Framework.Servers.HttpServer
         private Thread[] m_workerThreads;
         private Thread m_retrysThread;
 
-<<<<<<< HEAD
-        private SmartThreadPool m_threadPool = new SmartThreadPool(20000, 12, 2);
-
-//        private int m_timeout = 1000;   //  increase timeout 250; now use the event one
-=======
         private bool m_running = true;
         private int slowCount = 0;
 
         private SmartThreadPool m_threadPool;
->>>>>>> avn/ubitvar
+
 
         public PollServiceRequestManager(
             BaseHttpServer pSrv, bool performResponsesAsync, uint pWorkerThreadCount, int pTimeout)
@@ -93,7 +88,7 @@ namespace OpenSim.Framework.Servers.HttpServer
             m_WorkerThreadCount = pWorkerThreadCount;
             m_workerThreads = new Thread[m_WorkerThreadCount];
 
-<<<<<<< HEAD
+/*
             StatsManager.RegisterStat(
                 new Stat(
                     "QueuedPollResponses",
@@ -119,7 +114,7 @@ namespace OpenSim.Framework.Servers.HttpServer
                     MeasuresOfInterest.AverageChangeOverTime,
                     stat => stat.Value = ResponsesProcessed,
                     StatVerbosity.Debug));
-=======
+*/
             PollServiceHttpRequestComparer preqCp = new PollServiceHttpRequestComparer();
             m_bycontext = new Dictionary<PollServiceHttpRequest, Queue<PollServiceHttpRequest>>(preqCp);
 
@@ -132,46 +127,16 @@ namespace OpenSim.Framework.Servers.HttpServer
             startInfo.ThreadPoolName = "PoolService";
 
             m_threadPool = new SmartThreadPool(startInfo);
->>>>>>> avn/ubitvar
         }
 
         public void Start()
         {
-<<<<<<< HEAD
-            IsRunning = true;
-
-            if (PerformResponsesAsync)
-            {
-                //startup worker threads
-                for (uint i = 0; i < m_WorkerThreadCount; i++)
-                {
-                    m_workerThreads[i]
-                        = WorkManager.StartThread(
-                            PoolWorkerJob,
-                            string.Format("PollServiceWorkerThread{0}:{1}", i, m_server.Port),
-                            ThreadPriority.Normal,
-                            false,
-                            false,
-                            null,
-                            int.MaxValue);
-                }
-
-                WorkManager.StartThread(
-                    this.CheckLongPollThreads,
-                    string.Format("LongPollServiceWatcherThread:{0}", m_server.Port),
-                    ThreadPriority.Normal,
-                    false,
-                    true,
-                    null,
-                    1000 * 60 * 10);
-            }
-=======
             m_threadPool.Start();
             //startup worker threads
             for (uint i = 0; i < m_WorkerThreadCount; i++)
             {
                 m_workerThreads[i]
-                    = Watchdog.StartThread(
+                    = WorkManager.StartThread(
                         PoolWorkerJob,
                         string.Format("PollServiceWorkerThread {0}:{1}", i, m_server.Port),
                         ThreadPriority.Normal,
@@ -181,7 +146,7 @@ namespace OpenSim.Framework.Servers.HttpServer
                         int.MaxValue);
             }
 
-            m_retrysThread = Watchdog.StartThread(
+            m_retrysThread = WorkManager.StartThread(
                 this.CheckRetries,
                 string.Format("PollServiceWatcherThread:{0}", m_server.Port),
                 ThreadPriority.Normal,
@@ -189,7 +154,7 @@ namespace OpenSim.Framework.Servers.HttpServer
                 true,
                 null,
                 1000 * 60 * 10);
->>>>>>> avn/ubitvar
+
         }
 
         private void ReQueueEvent(PollServiceHttpRequest req)
@@ -258,36 +223,13 @@ namespace OpenSim.Framework.Servers.HttpServer
 
         private void CheckRetries()
         {
-<<<<<<< HEAD
-            // The only purpose of this thread is to check the EQs for events.
-            // If there are events, that thread will be placed in the "ready-to-serve" queue, m_requests.
-            // If there are no events, that thread will be back to its "waiting" queue, m_longPollRequests.
-            // All other types of tasks (Inventory handlers, http-in, etc) don't have the long-poll nature,
-            // so if they aren't ready to be served by a worker thread (no events), they are placed 
-            // directly back in the "ready-to-serve" queue by the worker thread.
-            while (IsRunning)
-=======
             while (m_running)
->>>>>>> avn/ubitvar
+
             {
                 Thread.Sleep(100); // let the world move  .. back to faster rate
                 Watchdog.UpdateThread();
                 lock (m_retryRequests)
                 {
-<<<<<<< HEAD
-                    if (m_longPollRequests.Count > 0 && IsRunning)
-                    {
-                        List<PollServiceHttpRequest> ready = m_longPollRequests.FindAll(req =>
-                            (req.PollServiceArgs.HasEvents(req.RequestID, req.PollServiceArgs.Id) || // there are events in this EQ
-                            (Environment.TickCount - req.RequestTime) > req.PollServiceArgs.TimeOutms) // no events, but timeout
-                            );
-
-                        ready.ForEach(req =>
-                            {
-                                m_requests.Enqueue(req);
-                                m_longPollRequests.Remove(req);
-                            });
-=======
                     while (m_retryRequests.Count > 0 && m_running)
                         m_requests.Enqueue(m_retryRequests.Dequeue());
                 }
@@ -295,7 +237,6 @@ namespace OpenSim.Framework.Servers.HttpServer
                 if (slowCount >= 10)
                 {
                     slowCount = 0;
->>>>>>> avn/ubitvar
 
                     lock (m_slowRequests)
                     {
@@ -308,12 +249,8 @@ namespace OpenSim.Framework.Servers.HttpServer
 
         public void Stop()
         {
-<<<<<<< HEAD
-            IsRunning = false;
-//            m_timeout = -10000; // cause all to expire
-=======
             m_running = false;
->>>>>>> avn/ubitvar
+
             Thread.Sleep(1000); // let the world move
 
             foreach (Thread t in m_workerThreads)
@@ -341,13 +278,9 @@ namespace OpenSim.Framework.Servers.HttpServer
 
             lock (m_slowRequests)
             {
-<<<<<<< HEAD
-                if (m_longPollRequests.Count > 0 && IsRunning)
-                    m_longPollRequests.ForEach(req => m_requests.Enqueue(req));
-=======
                 while (m_slowRequests.Count > 0)
                     m_requests.Enqueue(m_slowRequests.Dequeue());
->>>>>>> avn/ubitvar
+
             }
 
             while (m_requests.Count() > 0)
@@ -355,13 +288,8 @@ namespace OpenSim.Framework.Servers.HttpServer
                 try
                 {
                     wreq = m_requests.Dequeue(0);
-<<<<<<< HEAD
-                    ResponsesProcessed++;
-                    wreq.DoHTTPGruntWork(
-                        m_server, wreq.PollServiceArgs.NoEvents(wreq.RequestID, wreq.PollServiceArgs.Id));
-=======
                     wreq.DoHTTPstop(m_server);
->>>>>>> avn/ubitvar
+
                 }
                 catch
                 {
@@ -375,91 +303,35 @@ namespace OpenSim.Framework.Servers.HttpServer
 
         private void PoolWorkerJob()
         {
-            while (IsRunning)
+            while (m_running)
             {
-<<<<<<< HEAD
-=======
                 PollServiceHttpRequest req = m_requests.Dequeue(5000);
 
->>>>>>> avn/ubitvar
                 Watchdog.UpdateThread();
-                WaitPerformResponse();
-            }
-        }
-
-        public void WaitPerformResponse()
-        {
-            PollServiceHttpRequest req = m_requests.Dequeue(5000);
-//            m_log.DebugFormat("[YYY]: Dequeued {0}", (req == null ? "null" : req.PollServiceArgs.Type.ToString()));
-
-            if (req != null)
-            {
-                try
+                if (req != null)
                 {
-                    if (req.PollServiceArgs.HasEvents(req.RequestID, req.PollServiceArgs.Id))
+                    try
                     {
-                        Hashtable responsedata = req.PollServiceArgs.GetEvents(req.RequestID, req.PollServiceArgs.Id);
-
-<<<<<<< HEAD
-                        if (responsedata == null)
-                            return;
-
-                        // This is the event queue.
-                        // Even if we're not running we can still perform responses by explicit request.
-                        if (req.PollServiceArgs.Type == PollServiceEventArgs.EventType.LongPoll 
-                            || !PerformResponsesAsync) 
+                        if (req.PollServiceArgs.HasEvents(req.RequestID, req.PollServiceArgs.Id))
                         {
-                            try
-                            {
-                                ResponsesProcessed++;
-                                req.DoHTTPGruntWork(m_server, responsedata);
-                            }
-                            catch (ObjectDisposedException e) // Browser aborted before we could read body, server closed the stream
-                            {
-                                // Ignore it, no need to reply
-                                m_log.Error(e);
-                            }
-                        }
-                        else
-                        {
-                            m_threadPool.QueueWorkItem(x =>
-=======
+                            Hashtable responsedata = req.PollServiceArgs.GetEvents(req.RequestID, req.PollServiceArgs.Id);
+
                             if (req.PollServiceArgs.Type == PollServiceEventArgs.EventType.LongPoll) // This is the event queue
->>>>>>> avn/ubitvar
                             {
                                 try
                                 {
-                                    ResponsesProcessed++;
                                     req.DoHTTPGruntWork(m_server, responsedata);
                                     byContextDequeue(req);
                                 }
-                                catch (ObjectDisposedException e) // Browser aborted before we could read body, server closed the stream
+                                catch (ObjectDisposedException) // Browser aborted before we could read body, server closed the stream
                                 {
                                     // Ignore it, no need to reply
-                                    m_log.Error(e);
                                 }
-                                catch (Exception e)
+                            }
+                            else
+                            {
+                                m_threadPool.QueueWorkItem(x =>
                                 {
-<<<<<<< HEAD
-                                    m_log.Error(e);
-                                }
-
-                                return null;
-                            }, null);
-                        }
-                    }
-                    else
-                    {
-                        if ((Environment.TickCount - req.RequestTime) > req.PollServiceArgs.TimeOutms)
-                        {
-                            ResponsesProcessed++;
-                            req.DoHTTPGruntWork(
-                                m_server, req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id));
-                        }
-                        else
-                        {
-                            ReQueueEvent(req);
-=======
                                     try
                                     {
                                         req.DoHTTPGruntWork(m_server, responsedata);
@@ -478,7 +350,7 @@ namespace OpenSim.Framework.Servers.HttpServer
                         {
                             if ((Environment.TickCount - req.RequestTime) > req.PollServiceArgs.TimeOutms)
                             {
-                                req.DoHTTPGruntWork(m_server, 
+                                req.DoHTTPGruntWork(m_server,
                                     req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id));
                                 byContextDequeue(req);
                             }
@@ -486,17 +358,15 @@ namespace OpenSim.Framework.Servers.HttpServer
                             {
                                 ReQueueEvent(req);
                             }
->>>>>>> avn/ubitvar
                         }
                     }
-                }
-                catch (Exception e)
-                {
-                    m_log.ErrorFormat("Exception in poll service thread: " + e.ToString());
+                    catch (Exception e)
+                    {
+                        m_log.ErrorFormat("Exception in poll service thread: " + e.ToString());
+                    }
                 }
             }
         }
 
     }
 }
-

+ 1 - 5
OpenSim/Framework/Servers/Tests/OSHttpTests.cs

@@ -41,9 +41,6 @@ namespace OpenSim.Framework.Servers.Tests
 {
     [TestFixture]
     public class OSHttpTests : OpenSimTestCase
-<<<<<<< HEAD
-    {       
-=======
     {
         // we need an IHttpClientContext for our tests
         public class TestHttpClientContext: IHttpClientContext
@@ -363,9 +360,8 @@ namespace OpenSim.Framework.Servers.Tests
             public void Redirect(Uri uri) {}
             public void Redirect(string url) {}
         }
+       
 
-        
->>>>>>> avn/ubitvar
         public OSHttpRequest req0;
         public OSHttpRequest req1;
 

+ 0 - 4
OpenSim/Framework/UserProfileData.cs

@@ -160,11 +160,7 @@ namespace OpenSim.Framework
         public virtual ulong HomeRegion
         {
             get 
-<<<<<<< HEAD
-            {
-=======
             { 
->>>>>>> avn/ubitvar
                 return Util.RegionWorldLocToHandle(Util.RegionToWorldLoc(m_homeRegionX), Util.RegionToWorldLoc(m_homeRegionY));
                 // return Utils.UIntsToLong( m_homeRegionX * (uint)Constants.RegionSize, m_homeRegionY * (uint)Constants.RegionSize); 
             }

+ 8 - 0
OpenSim/Framework/UserProfiles.cs

@@ -91,6 +91,14 @@ namespace OpenSim.Framework
         public UUID TargetId;
         public string Notes;
     }
+
+    public class UserPreferences
+    {
+        public UUID UserId;
+        public bool IMViaEmail = false;
+        public bool Visible = false;
+        public string EMail = string.Empty;
+    }
     
     public class UserAccountProperties
     {

+ 0 - 68
OpenSim/Framework/Util.cs

@@ -1688,69 +1688,6 @@ namespace OpenSim.Framework
             return displayConnectionString;
         }
 
-        public static T ReadSettingsFromIniFile<T>(IConfig config, T settingsClass)
-        {
-            Type settingsType = settingsClass.GetType();
-
-            FieldInfo[] fieldInfos = settingsType.GetFields();
-            foreach (FieldInfo fieldInfo in fieldInfos)
-            {
-                if (!fieldInfo.IsStatic)
-                {
-                    if (fieldInfo.FieldType == typeof(System.String))
-                    {
-                        fieldInfo.SetValue(settingsClass, config.Get(fieldInfo.Name, (string)fieldInfo.GetValue(settingsClass)));
-                    }
-                    else if (fieldInfo.FieldType == typeof(System.Boolean))
-                    {
-                        fieldInfo.SetValue(settingsClass, config.GetBoolean(fieldInfo.Name, (bool)fieldInfo.GetValue(settingsClass)));
-                    }
-                    else if (fieldInfo.FieldType == typeof(System.Int32))
-                    {
-                        fieldInfo.SetValue(settingsClass, config.GetInt(fieldInfo.Name, (int)fieldInfo.GetValue(settingsClass)));
-                    }
-                    else if (fieldInfo.FieldType == typeof(System.Single))
-                    {
-                        fieldInfo.SetValue(settingsClass, config.GetFloat(fieldInfo.Name, (float)fieldInfo.GetValue(settingsClass)));
-                    }
-                    else if (fieldInfo.FieldType == typeof(System.UInt32))
-                    {
-                        fieldInfo.SetValue(settingsClass, Convert.ToUInt32(config.Get(fieldInfo.Name, ((uint)fieldInfo.GetValue(settingsClass)).ToString())));
-                    }
-                }
-            }
-
-            PropertyInfo[] propertyInfos = settingsType.GetProperties();
-            foreach (PropertyInfo propInfo in propertyInfos)
-            {
-                if ((propInfo.CanRead) && (propInfo.CanWrite))
-                {
-                    if (propInfo.PropertyType == typeof(System.String))
-                    {
-                        propInfo.SetValue(settingsClass, config.Get(propInfo.Name, (string)propInfo.GetValue(settingsClass, null)), null);
-                    }
-                    else if (propInfo.PropertyType == typeof(System.Boolean))
-                    {
-                        propInfo.SetValue(settingsClass, config.GetBoolean(propInfo.Name, (bool)propInfo.GetValue(settingsClass, null)), null);
-                    }
-                    else if (propInfo.PropertyType == typeof(System.Int32))
-                    {
-                        propInfo.SetValue(settingsClass, config.GetInt(propInfo.Name, (int)propInfo.GetValue(settingsClass, null)), null);
-                    }
-                    else if (propInfo.PropertyType == typeof(System.Single))
-                    {
-                        propInfo.SetValue(settingsClass, config.GetFloat(propInfo.Name, (float)propInfo.GetValue(settingsClass, null)), null);
-                    }
-                    if (propInfo.PropertyType == typeof(System.UInt32))
-                    {
-                        propInfo.SetValue(settingsClass, Convert.ToUInt32(config.Get(propInfo.Name, ((uint)propInfo.GetValue(settingsClass, null)).ToString())), null);
-                    }
-                }
-            }
-
-            return settingsClass;
-        }
-
         public static string Base64ToString(string str)
         {
             Decoder utf8Decode = Encoding.UTF8.GetDecoder();
@@ -2156,11 +2093,6 @@ namespace OpenSim.Framework
             }
         }
 
-        public static void FireAndForget(System.Threading.WaitCallback callback)
-        {
-            FireAndForget(callback, null);
-        }
-
         public static void InitThreadPool(int minThreads, int maxThreads)
         {
             if (maxThreads < 2)

+ 1 - 5
OpenSim/Framework/VersionInfo.cs

@@ -29,11 +29,7 @@ namespace OpenSim
 {
     public class VersionInfo
     {
-<<<<<<< HEAD:OpenSim/Framework/VersionInfo.cs
-        public const string VersionNumber = "0.8.2.0";
-=======
-        private const string VERSION_NUMBER = "0.8.0CM";
->>>>>>> avn/ubitvar:OpenSim/Framework/Servers/VersionInfo.cs
+        public const string VersionNumber = "0.8.2.0CM";
         private const Flavour VERSION_FLAVOUR = Flavour.Dev;
 
         public enum Flavour

+ 23 - 123
OpenSim/Framework/WebUtil.cs

@@ -205,16 +205,8 @@ namespace OpenSim.Framework
         {
             if (DebugLevel == 5)
             {
-<<<<<<< HEAD
                 if (output.Length > MaxRequestDiagLength)
                     output = output.Substring(0, MaxRequestDiagLength) + "...";
-=======
-                int len = output.Length;
-                if(len > 80)
-                    len = 80;
-                output = output.Substring(0, len);
-                output = output + "...";
->>>>>>> avn/ubitvar
             }
 
             m_log.DebugFormat("[LOGHTTP]: {0}{1}", context, Util.BinaryToASCII(output));
@@ -295,12 +287,9 @@ namespace OpenSim.Framework
                     }
                     else
                     {
-<<<<<<< HEAD
-=======
                         tickcompressdata = tickJsondata;
                         compsize = buffer.Length;
-                        request.ContentType = "application/json";
->>>>>>> avn/ubitvar
+
                         request.ContentLength = buffer.Length;   //Count bytes to send
                         using (Stream requestStream = request.GetRequestStream())
                             requestStream.Write(buffer, 0, buffer.Length);         //Send it
@@ -315,7 +304,6 @@ namespace OpenSim.Framework
                 {
                     using (Stream responseStream = response.GetResponseStream())
                     {
-<<<<<<< HEAD
                         using (StreamReader reader = new StreamReader(responseStream))
                         {
                             string responseStr = reader.ReadToEnd();
@@ -323,12 +311,6 @@ namespace OpenSim.Framework
                                 WebUtil.LogResponseDetail(reqnum, responseStr);
                             return CanonicalizeResults(responseStr);
                         }
-=======
-                        string responseStr = null;
-                        responseStr = responseStream.GetStreamString();
-                        //m_log.DebugFormat("[WEB UTIL]: <{0}> response is <{1}>",reqnum,responseStr);
-                        return CanonicalizeResults(responseStr);
->>>>>>> avn/ubitvar
                     }
                 }
             }
@@ -352,10 +334,6 @@ namespace OpenSim.Framework
                 if (tickdiff > LongCallTime)
                 {
                     m_log.InfoFormat(
-<<<<<<< HEAD
-                        "[LOGHTTP]: Slow JSON-RPC request {0} {1} to {2} took {3}ms, {4}ms writing, {5}",
-                        reqnum, method, url, tickdiff, tickdata,
-=======
                         "[WEB UTIL]: Slow ServiceOSD request {0} {1} {2} took {3}ms, {4}ms writing({5} at Json; {6} at comp), {7} bytes ({8} uncomp): {9}",
                         reqnum,
                         method,
@@ -366,7 +344,7 @@ namespace OpenSim.Framework
                         tickcompressdata,
                         compsize,
                         strBuffer != null ? strBuffer.Length : 0,
->>>>>>> avn/ubitvar
+
                         strBuffer != null
                             ? (strBuffer.Length > MaxRequestDiagLength ? strBuffer.Remove(MaxRequestDiagLength) : strBuffer)
                             : "");
@@ -823,6 +801,20 @@ namespace OpenSim.Framework
             MakeRequest<TRequest, TResponse>(verb, requestUrl, obj, action, maxConnections, null);
         }
 
+        /// <summary>
+        /// Perform a synchronous REST request.
+        /// </summary>
+        /// <param name="verb"></param>
+        /// <param name="requestUrl"></param>
+        /// <param name="obj"></param>
+        /// <param name="pTimeout">
+        /// Request timeout in milliseconds.  Timeout.Infinite indicates no timeout.  If 0 is passed then the default HttpWebRequest timeout is used (100 seconds)
+        /// </param>
+        /// <param name="maxConnections"></param>
+        /// <returns>
+        /// The response.  If there was an internal exception or the request timed out, 
+        /// then the default(TResponse) is returned.
+        /// </returns>
         public static void MakeRequest<TRequest, TResponse>(string verb,
                 string requestUrl, TRequest obj, Action<TResponse> action,
                 int maxConnections, IServiceAuth auth)
@@ -834,7 +826,7 @@ namespace OpenSim.Framework
                     reqnum, verb, requestUrl);
 
             int tickstart = Util.EnvironmentTickCount();
-//            int tickdata = 0;
+            int tickdata = 0;
             int tickdiff = 0;
 
             Type type = typeof(TRequest);
@@ -876,27 +868,19 @@ namespace OpenSim.Framework
                     request.ContentLength = length;
                     byte[] data = buffer.ToArray();
 
-<<<<<<< HEAD
                     if (WebUtil.DebugLevel >= 5)
                         WebUtil.LogOutgoingDetail("SEND", reqnum, System.Text.Encoding.UTF8.GetString(data));
 
                     request.BeginGetRequestStream(delegate(IAsyncResult res)
-=======
-                    // capture how much time was spent writing
-                    // useless in this async
-//                    tickdata = Util.EnvironmentTickCountSubtract(tickstart);
-                    request.BeginGetResponse(delegate(IAsyncResult ar)
->>>>>>> avn/ubitvar
                     {
                         using (Stream requestStream = request.EndGetRequestStream(res))
                             requestStream.Write(data, 0, length);
 
                         // capture how much time was spent writing
-                        tickdata = Util.EnvironmentTickCountSubtract(tickstart);
+//                        tickdata = Util.EnvironmentTickCountSubtract(tickstart);
 
                         request.BeginGetResponse(delegate(IAsyncResult ar)
                         {
-<<<<<<< HEAD
                             using (WebResponse response = request.EndGetResponse(ar))
                             {
                                 try
@@ -911,14 +895,6 @@ namespace OpenSim.Framework
                                 {
                                 }
                             }
-=======
-                            // Let's not close this
-                            // yes do close it
-                            buffer.Close();
-                            respStream.Close();
-                            response.Close();
-                        }
->>>>>>> avn/ubitvar
 
                             action(deserial);
 
@@ -980,7 +956,6 @@ namespace OpenSim.Framework
                                 "[ASYNC REQUEST]: Request {0} {1} failed with exception {2}{3}",
                                 verb, requestUrl, e.Message, e.StackTrace);
                         }
-<<<<<<< HEAD
         
                         //  m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString());
 
@@ -998,83 +973,34 @@ namespace OpenSim.Framework
                     }, null);
                 }
 
-                int tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
+                tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
                 if (tickdiff > WebUtil.LongCallTime)
                 {
                     string originalRequest = null;
 
                     if (buffer != null)
-=======
-                    }
-                    catch (Exception e)
-                    {
-                        m_log.ErrorFormat(
-                            "[ASYNC REQUEST]: Request {0} {1} failed with exception {2}{3}",
-                            verb, requestUrl, e.Message, e.StackTrace);
-                    }
-    
-                    //  m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString());
-                    try
-                    {
-                        action(deserial);
-                    }
-                    catch (Exception e)
->>>>>>> avn/ubitvar
                     {
                         originalRequest = Encoding.UTF8.GetString(buffer.ToArray());
 
-<<<<<<< HEAD
                         if (originalRequest.Length > WebUtil.MaxRequestDiagLength)
                             originalRequest = originalRequest.Remove(WebUtil.MaxRequestDiagLength);
                     }
-=======
-            tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
-            if (tickdiff > WebUtil.LongCallTime)
-            {
-/*
-                string originalRequest = null;
->>>>>>> avn/ubitvar
-
-                    m_log.InfoFormat(
+                     m_log.InfoFormat(
                         "[LOGHTTP]: Slow AsynchronousRequestObject request {0} {1} to {2} took {3}ms, {4}ms writing, {5}",
                         reqnum, verb, requestUrl, tickdiff, tickdata,
                         originalRequest);
                 }
                 else if (WebUtil.DebugLevel >= 4)
                 {
-                    m_log.DebugFormat("[LOGHTTP]: HTTP OUT {0} took {1}ms, {2}ms writing",
-                        reqnum, tickdiff, tickdata);
+                    m_log.DebugFormat(
+                        "[WEB UTIL]: HTTP OUT {0} took {1}ms",
+                        reqnum, tickdiff);
                 }
-<<<<<<< HEAD
             }
             finally
             { 
                 if (buffer != null)
                     buffer.Dispose();
-=======
-
-                m_log.InfoFormat(
-                    "[ASYNC REQUEST]: Slow request {0} {1} {2} took {3}ms, {4}ms writing, {5}",
-                    reqnum,
-                    verb,
-                    requestUrl,
-                    tickdiff,
-                    tickdata,
-                    originalRequest);
-*/
-                m_log.InfoFormat(
-                    "[ASYNC REQUEST]:  Slow WebRequest SETUP <{0}> {1} {2} took {3}ms",
-                    reqnum,
-                    verb,
-                    requestUrl,
-                    tickdiff);
-            }
-            else if (WebUtil.DebugLevel >= 4)
-            {
-                m_log.DebugFormat(
-                    "[WEB UTIL]: HTTP OUT {0} took {1}ms",
-                    reqnum, tickdiff);
->>>>>>> avn/ubitvar
             }
         }
     }
@@ -1136,11 +1062,8 @@ namespace OpenSim.Framework
                     request.ContentLength = length;
                     byte[] data = buffer.ToArray();
 
-<<<<<<< HEAD
                     if (WebUtil.DebugLevel >= 5)
                         WebUtil.LogOutgoingDetail("SEND", reqnum, System.Text.Encoding.UTF8.GetString(data));
-=======
->>>>>>> avn/ubitvar
 
                     Stream requestStream = null;
                     try
@@ -1188,10 +1111,6 @@ namespace OpenSim.Framework
             if (tickdiff > WebUtil.LongCallTime)
             {
                 m_log.InfoFormat(
-<<<<<<< HEAD
-                    "[LOGHTTP]: Slow SynchronousRestForms request {0} {1} to {2} took {3}ms, {4}ms writing, {5}",
-                    reqnum, verb, requestUrl, tickdiff, tickdata,
-=======
                     "[FORMS]: Slow request {0} {1} {2} took {3}ms, {4}ms writing, {5}",
                     reqnum,
                     verb,
@@ -1199,7 +1118,6 @@ namespace OpenSim.Framework
                     tickdiff,
                     tickset,
                     tickdata,
->>>>>>> avn/ubitvar
                     obj.Length > WebUtil.MaxRequestDiagLength ? obj.Remove(WebUtil.MaxRequestDiagLength) : obj);
             }
             else if (WebUtil.DebugLevel >= 4)
@@ -1336,8 +1254,6 @@ namespace OpenSim.Framework
                 ht.ServicePoint.ConnectionLimit = maxConnections;
 
             request.Method = verb;
-            if (pTimeout != 0)
-                request.Timeout = pTimeout * 1000;
             MemoryStream buffer = null;
 
             try
@@ -1351,29 +1267,17 @@ namespace OpenSim.Framework
                     XmlWriterSettings settings = new XmlWriterSettings();
                     settings.Encoding = Encoding.UTF8;
 
-<<<<<<< HEAD
                     using (XmlWriter writer = XmlWriter.Create(buffer, settings))
                     {
                         XmlSerializer serializer = new XmlSerializer(type);
                         serializer.Serialize(writer, obj);
                         writer.Flush();
                     }
-=======
-                using (XmlWriter writer = XmlWriter.Create(buffer, settings))
-                {
-                    XmlSerializer serializer = new XmlSerializer(type);
-                    serializer.Serialize(writer, obj);
-                    writer.Flush();
-                    if (WebUtil.DebugLevel >= 5)
-                        WebUtil.LogOutgoingDetail(buffer);
-                }
->>>>>>> avn/ubitvar
 
                     int length = (int)buffer.Length;
                     request.ContentLength = length;
                     byte[] data = buffer.ToArray();
 
-<<<<<<< HEAD
                     if (WebUtil.DebugLevel >= 5)
                         WebUtil.LogOutgoingDetail("SEND", reqnum, System.Text.Encoding.UTF8.GetString(data));
 
@@ -1397,9 +1301,6 @@ namespace OpenSim.Framework
                     }
                 }
 
-=======
-                Stream requestStream = null;
->>>>>>> avn/ubitvar
                 try
                 {
                     using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
@@ -1488,7 +1389,6 @@ namespace OpenSim.Framework
 
             return deserial;
         }
-
     
         public static class XMLResponseHelper
         {

+ 0 - 13
OpenSim/Region/Application/OpenSim.cs

@@ -115,13 +115,8 @@ namespace OpenSim
                 if (!String.IsNullOrEmpty(asyncCallMethodStr) && Utils.EnumTryParse<FireAndForgetMethod>(asyncCallMethodStr, out asyncCallMethod))
                     Util.FireAndForgetMethod = asyncCallMethod;
 
-<<<<<<< HEAD
-                stpMinThreads = startupConfig.GetInt("MinPoolThreads", 15);
-                stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 300);
-=======
                 stpMinThreads = startupConfig.GetInt("MinPoolThreads", 2 );
                 stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 25);
->>>>>>> avn/ubitvar
                 m_consolePrompt = startupConfig.GetString("ConsolePrompt", @"Region (\R) ");
             }
 
@@ -273,20 +268,12 @@ namespace OpenSim
                                           SavePrimsXml2);
 
             m_console.Commands.AddCommand("Archiving", false, "load oar",
-<<<<<<< HEAD
-=======
-
->>>>>>> avn/ubitvar
                                           "load oar [--merge] [--skip-assets]"
                                              + " [--default-user \"User Name\"]"
                                              + " [--force-terrain] [--force-parcels]"
                                              + " [--no-objects]"
                                              + " [--rotation degrees] [--rotation-center \"<x,y,z>\"]"
-<<<<<<< HEAD
-                                             + " [--displacement \"<x,y,z>\"]"                                             
-=======
                                              + " [--displacement \"<x,y,z>\"]"
->>>>>>> avn/ubitvar
                                              + " [<OAR path>]",
                                           "Load a region's data from an OAR archive.",
                                           "--merge will merge the OAR with the existing scene (suppresses terrain and parcel info loading).\n"

+ 0 - 9
OpenSim/Region/Application/OpenSimBase.cs

@@ -276,13 +276,9 @@ namespace OpenSim
 
             base.StartupSpecific();
 
-<<<<<<< HEAD
-            if (EnableInitialPluginLoad)
-                LoadPlugins();
 
             // We still want to post initalize any plugins even if loading has been disabled since a test may have
             // inserted them manually.
-=======
             LoadPlugins();
 
             if (m_plugins.Count == 0) // We failed to load any modules. Mono Addins glitch!
@@ -290,7 +286,6 @@ namespace OpenSim
                 Environment.Exit(1);
             }
 
->>>>>>> avn/ubitvar
             foreach (IApplicationPlugin plugin in m_plugins)
                 plugin.PostInitialise();
 
@@ -832,10 +827,6 @@ namespace OpenSim
         {
             Vector3 regionExtent = new Vector3(regionInfo.RegionSizeX, regionInfo.RegionSizeY, regionInfo.RegionSizeZ);
             PhysicsScene physicsScene = GetPhysicsScene(regionInfo.RegionName, regionExtent);
-<<<<<<< HEAD
-
-=======
->>>>>>> avn/ubitvar
             SceneCommunicationService sceneGridService = new SceneCommunicationService();
 
             return new Scene(

+ 12 - 110
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs

@@ -45,7 +45,6 @@ using OpenSim.Region.Framework.Scenes;
 using OpenSim.Region.Framework.Scenes.Serialization;
 using OpenSim.Framework.Servers;
 using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Framework.Client;
 using OpenSim.Services.Interfaces;
 
 using Caps = OpenSim.Framework.Capabilities.Caps;
@@ -360,8 +359,8 @@ namespace OpenSim.Region.ClientStack.Linden
         public string SeedCapRequest(string request, string path, string param,
                                   IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
         {
-//            m_log.DebugFormat(
-//                "[CAPS]: Received SEED caps request in {0} for agent {1}", m_regionName, m_HostCapsObj.AgentID);
+            m_log.DebugFormat(
+                "[CAPS]: Received SEED caps request in {0} for agent {1}", m_regionName, m_HostCapsObj.AgentID);
 
             if (!m_HostCapsObj.WaitForActivation())
                 return string.Empty;
@@ -789,99 +788,10 @@ namespace OpenSim.Region.ClientStack.Linden
             }
             else if (inventoryType == "object")
             {
-<<<<<<< HEAD
-                inType = (sbyte)InventoryType.Object;
-                assType = (sbyte)AssetType.Object;
-
-                List<Vector3> positions = new List<Vector3>();
-                List<Quaternion> rotations = new List<Quaternion>();
-                OSDMap request = (OSDMap)OSDParser.DeserializeLLSDXml(data);
-                OSDArray instance_list = (OSDArray)request["instance_list"];
-                OSDArray mesh_list = (OSDArray)request["mesh_list"];
-                OSDArray texture_list = (OSDArray)request["texture_list"];
-                SceneObjectGroup grp = null;
-
-                InventoryFolderBase textureUploadFolder = null;
-
-                List<InventoryFolderBase> foldersToUpdate = new List<InventoryFolderBase>();
-                List<InventoryItemBase> itemsToUpdate = new List<InventoryItemBase>();
-                IClientInventory clientInv = null;
-                
-                if (texture_list.Count > 0)
-                {
-                    ScenePresence avatar = null;
-                    m_Scene.TryGetScenePresence(m_HostCapsObj.AgentID, out avatar);
-
-                    if (avatar != null)
-                    {
-                        IClientCore core = (IClientCore)avatar.ControllingClient;
-
-                        if (core.TryGet<IClientInventory>(out clientInv))
-                        {
-                            var systemTextureFolder = m_Scene.InventoryService.GetFolderForType(m_HostCapsObj.AgentID, FolderType.Texture);
-                            textureUploadFolder = new InventoryFolderBase(UUID.Random(), assetName, m_HostCapsObj.AgentID, (short)FolderType.None, systemTextureFolder.ID, 1);
-                            if (m_Scene.InventoryService.AddFolder(textureUploadFolder))
-                            {
-                                foldersToUpdate.Add(textureUploadFolder);
-
-                                m_log.DebugFormat(
-                                    "[BUNCH OF CAPS]: Created new folder '{0}' ({1}) for textures uploaded with mesh object {2}", 
-                                    textureUploadFolder.Name, textureUploadFolder.ID, assetName);
-                            }
-                            else
-                            {
-                                textureUploadFolder = null;
-                            }
-                        }
-                    }
-                }
-
-                List<UUID> textures = new List<UUID>();
-                for (int i = 0; i < texture_list.Count; i++)
-                {
-                    AssetBase textureAsset = new AssetBase(UUID.Random(), assetName, (sbyte)AssetType.Texture, "");
-                    textureAsset.Data = texture_list[i].AsBinary();
-                    m_assetService.Store(textureAsset);
-                    textures.Add(textureAsset.FullID);
-
-                    if (textureUploadFolder != null)
-                    {
-                        InventoryItemBase textureItem = new InventoryItemBase();
-                        textureItem.Owner = m_HostCapsObj.AgentID;
-                        textureItem.CreatorId = m_HostCapsObj.AgentID.ToString();
-                        textureItem.CreatorData = String.Empty;
-                        textureItem.ID = UUID.Random();
-                        textureItem.AssetID = textureAsset.FullID;
-                        textureItem.Description = assetDescription;
-                        textureItem.Name = assetName + " - Texture " + (i + 1).ToString();
-                        textureItem.AssetType = (int)AssetType.Texture;
-                        textureItem.InvType = (int)InventoryType.Texture;
-                        textureItem.Folder = textureUploadFolder.ID;
-                        textureItem.CurrentPermissions
-                            = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export);
-                        textureItem.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export;
-                        textureItem.EveryOnePermissions = 0;
-                        textureItem.NextPermissions = (uint)PermissionMask.All;
-                        textureItem.CreationDate = Util.UnixTimeSinceEpoch();
-                        m_Scene.InventoryService.AddItem(textureItem);
-                        itemsToUpdate.Add(textureItem);
-
-                        m_log.DebugFormat(
-                            "[BUNCH OF CAPS]: Created new inventory item '{0}' ({1}) for texture uploaded with mesh object {2}", 
-                            textureItem.Name, textureItem.ID, assetName);
-                    }
-                }
-
-                if (clientInv != null && (foldersToUpdate.Count > 0 || itemsToUpdate.Count > 0))
-                {
-                    clientInv.SendBulkUpdateInventory(foldersToUpdate.ToArray(), itemsToUpdate.ToArray());
-                }
-=======
                 if (assetType == "mesh") // this code for now is for mesh models uploads only
                 {
                     inType = (sbyte)InventoryType.Object;
                     assType = (sbyte)AssetType.Object;
->>>>>>> avn/ubitvar
 
                     List<Vector3> positions = new List<Vector3>();
                     List<Quaternion> rotations = new List<Quaternion>();
@@ -1467,24 +1377,17 @@ namespace OpenSim.Region.ClientStack.Linden
                 {
                     string message;
                     copyItem = m_Scene.GiveInventoryItem(m_HostCapsObj.AgentID, item.Owner, itemID, folderID, out message);
-                    if (client != null)
+                    if (copyItem != null && client != null)
                     {
-                        if (copyItem != null)
-                        {
-                            m_log.InfoFormat("[CAPS]: CopyInventoryFromNotecard, ItemID:{0}, FolderID:{1}", copyItem.ID, copyItem.Folder);
-                            client.SendBulkUpdateInventory(copyItem);
-                        }
-                        else
-                        {
-                            client.SendAgentAlertMessage(message, false);
-                        }
+                        m_log.InfoFormat("[CAPS]: CopyInventoryFromNotecard, ItemID:{0}, FolderID:{1}", copyItem.ID, copyItem.Folder);
+                        client.SendBulkUpdateInventory(copyItem);
                     }
                 }
                 else
                 {
                     m_log.ErrorFormat("[CAPS]: CopyInventoryFromNotecard - Failed to retrieve item {0} from notecard {1}", itemID, notecardID);
                     if (client != null)
-                        client.SendAgentAlertMessage("Failed to retrieve item", false);
+                        client.SendAlertMessage("Failed to retrieve item");
                 }
             }
             catch (Exception e)
@@ -1656,14 +1559,13 @@ namespace OpenSim.Region.ClientStack.Linden
                 string param, IOSHttpRequest httpRequest,
                 IOSHttpResponse httpResponse)
         {
-            OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
-            OSDMap accessPrefs = (OSDMap)req["access_prefs"];
-            string desiredMaturity = accessPrefs["max"];
-
+//            OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
             OSDMap resp = new OSDMap();
-            OSDMap respAccessPrefs = new OSDMap();
-            respAccessPrefs["max"] = desiredMaturity;   // echoing the maturity back means success
-            resp["access_prefs"] = respAccessPrefs;
+
+            OSDMap accessPrefs = new OSDMap();
+            accessPrefs["max"] = "A";
+
+            resp["access_prefs"] = accessPrefs;
 
             string response = OSDParser.SerializeLLSDXmlString(resp);
             return response; 

+ 2 - 2
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCapsModule.cs

@@ -40,8 +40,8 @@ using OpenSim.Region.Framework.Interfaces;
 using OpenSim.Region.Framework.Scenes;
 using Caps = OpenSim.Framework.Capabilities.Caps;
 
-[assembly: Addin("LindenCaps", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
+[assembly: Addin("LindenCaps", "0.1")]
+[assembly: AddinDependency("OpenSim", "0.5")]
 namespace OpenSim.Region.ClientStack.Linden
 {
 

+ 1 - 29
OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs

@@ -177,7 +177,6 @@ namespace OpenSim.Region.ClientStack.Linden
         }
 
         /// <summary>
-<<<<<<< HEAD
         ///  Always returns a valid queue
         /// </summary>
         /// <param name="agentId"></param>
@@ -201,8 +200,7 @@ namespace OpenSim.Region.ClientStack.Linden
         }
 
         /// <summary>
-=======
->>>>>>> avn/ubitvar
+
         /// May return a null queue
         /// </summary>
         /// <param name="agentId"></param>
@@ -290,17 +288,11 @@ namespace OpenSim.Region.ClientStack.Linden
         public void OnRegisterCaps(UUID agentID, Caps caps)
         {
             // Register an event queue for the client
-<<<<<<< HEAD
 
             if (DebugLevel > 0)
                 m_log.DebugFormat(
                     "[EVENTQUEUE]: OnRegisterCaps: agentID {0} caps {1} region {2}",
                     agentID, caps, m_scene.RegionInfo.RegionName);
-=======
-            m_log.DebugFormat(
-                "[EVENTQUEUE]: OnRegisterCaps: agentID {0} caps {1} region {2}",
-                agentID, caps, m_scene.RegionInfo.RegionName);
->>>>>>> avn/ubitvar
 
             UUID eventQueueGetUUID;
             Queue<OSD> queue;
@@ -519,14 +511,9 @@ namespace OpenSim.Region.ClientStack.Linden
 
         public virtual void EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID, int regionSizeX, int regionSizeY)
         {
-<<<<<<< HEAD
             if (DebugLevel > 0)
                 m_log.DebugFormat("{0} EnableSimulator. handle={1}, endPoint={2}, avatarID={3}",
                     LogHeader, handle, endPoint, avatarID, regionSizeX, regionSizeY);
-=======
-            m_log.DebugFormat("{0} EnableSimulator. handle={1}, avatarID={2}, regionSize={3},{4}>",
-                LogHeader, handle, avatarID, regionSizeX, regionSizeY);
->>>>>>> avn/ubitvar
 
             OSD item = EventQueueHelper.EnableSimulator(handle, endPoint, regionSizeX, regionSizeY);
             Enqueue(item, avatarID);
@@ -535,15 +522,10 @@ namespace OpenSim.Region.ClientStack.Linden
         public virtual void EstablishAgentCommunication(UUID avatarID, IPEndPoint endPoint, string capsPath,
                                 ulong regionHandle, int regionSizeX, int regionSizeY) 
         {
-<<<<<<< HEAD
             if (DebugLevel > 0)
                 m_log.DebugFormat("{0} EstablishAgentCommunication. handle={1}, endPoint={2}, avatarID={3}",
                     LogHeader, regionHandle, endPoint, avatarID, regionSizeX, regionSizeY);
 
-=======
-            m_log.DebugFormat("{0} EstablishAgentCommunication. handle={1}, avatarID={2}, regionSize={3},{4}>",
-                LogHeader, regionHandle, avatarID, regionSizeX, regionSizeY);
->>>>>>> avn/ubitvar
             OSD item = EventQueueHelper.EstablishAgentCommunication(avatarID, endPoint.ToString(), capsPath, regionHandle, regionSizeX, regionSizeY);
             Enqueue(item, avatarID);
         }
@@ -553,14 +535,9 @@ namespace OpenSim.Region.ClientStack.Linden
                                         uint locationID, uint flags, string capsURL, 
                                         UUID avatarID, int regionSizeX, int regionSizeY)
         {
-<<<<<<< HEAD
             if (DebugLevel > 0)
                 m_log.DebugFormat("{0} TeleportFinishEvent. handle={1}, endPoint={2}, avatarID={3}",
                     LogHeader, regionHandle, regionExternalEndPoint, avatarID, regionSizeX, regionSizeY);
-=======
-            m_log.DebugFormat("{0} TeleportFinishEvent. handle={1}, avatarID={2}, regionSize={3},{4}>",
-                LogHeader, regionHandle, avatarID, regionSizeX, regionSizeY);
->>>>>>> avn/ubitvar
 
             OSD item = EventQueueHelper.TeleportFinishEvent(regionHandle, simAccess, regionExternalEndPoint,
                                                             locationID, flags, capsURL, avatarID, regionSizeX, regionSizeY);
@@ -571,14 +548,9 @@ namespace OpenSim.Region.ClientStack.Linden
                                 IPEndPoint newRegionExternalEndPoint,
                                 string capsURL, UUID avatarID, UUID sessionID, int regionSizeX, int regionSizeY)
         {
-<<<<<<< HEAD
             if (DebugLevel > 0)
                 m_log.DebugFormat("{0} CrossRegion. handle={1}, avatarID={2}, regionSize={3},{4}>",
                     LogHeader, handle, avatarID, regionSizeX, regionSizeY);
-=======
-            m_log.DebugFormat("{0} CrossRegion. handle={1}, avatarID={2}, regionSize={3},{4}>",
-                LogHeader, handle, avatarID, regionSizeX, regionSizeY);
->>>>>>> avn/ubitvar
 
             OSD item = EventQueueHelper.CrossRegion(handle, pos, lookAt, newRegionExternalEndPoint,
                                                     capsURL, avatarID, sessionID, regionSizeX, regionSizeY);

+ 0 - 9
OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs

@@ -77,13 +77,8 @@ namespace OpenSim.Region.ClientStack.Linden
             llsdSimInfo.Add("Handle", new OSDBinary(ulongToByteArray(handle)));
             llsdSimInfo.Add("IP", new OSDBinary(endPoint.Address.GetAddressBytes()));
             llsdSimInfo.Add("Port", new OSDInteger(endPoint.Port));
-<<<<<<< HEAD
-            llsdSimInfo.Add("RegionSizeX", OSD.FromUInteger((uint) regionSizeX));
-            llsdSimInfo.Add("RegionSizeY", OSD.FromUInteger((uint) regionSizeY));
-=======
             llsdSimInfo.Add("RegionSizeX", OSD.FromUInteger((uint)regionSizeX));
             llsdSimInfo.Add("RegionSizeY", OSD.FromUInteger((uint)regionSizeY));
->>>>>>> avn/ubitvar
 
             OSDArray arr = new OSDArray(1);
             arr.Add(llsdSimInfo);
@@ -176,12 +171,8 @@ namespace OpenSim.Region.ClientStack.Linden
             info.Add("SimAccess", OSD.FromInteger(simAccess));
             info.Add("SimIP", OSD.FromBinary(regionExternalEndPoint.Address.GetAddressBytes()));
             info.Add("SimPort", OSD.FromInteger(regionExternalEndPoint.Port));
-<<<<<<< HEAD
-            info.Add("TeleportFlags", OSD.FromULong(1L << 4)); // AgentManager.TeleportFlags.ViaLocation
-=======
 //            info.Add("TeleportFlags", OSD.FromULong(1L << 4)); // AgentManager.TeleportFlags.ViaLocation
             info.Add("TeleportFlags", OSD.FromUInteger(flags));
->>>>>>> avn/ubitvar
             info.Add("RegionSizeX", OSD.FromUInteger((uint)regionSizeX));
             info.Add("RegionSizeY", OSD.FromUInteger((uint)regionSizeY));
 

+ 5 - 45
OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs

@@ -60,11 +60,10 @@ namespace OpenSim.Region.ClientStack.Linden
         private IAssetService m_AssetService;
         private bool m_Enabled = true;
         private string m_URL;
-<<<<<<< HEAD
+
         private string m_URL2;
         private string m_RedirectURL = null;
         private string m_RedirectURL2 = null;
-=======
        
         struct aPollRequest
         {
@@ -94,7 +93,7 @@ namespace OpenSim.Region.ClientStack.Linden
                 new OpenMetaverse.BlockingQueue<aPollRequest>();
 
         private Dictionary<UUID, PollServiceMeshEventArgs> m_pollservices = new Dictionary<UUID, PollServiceMeshEventArgs>();
->>>>>>> avn/ubitvar
+
 
         #region Region Module interfaceBase Members
 
@@ -129,12 +128,9 @@ namespace OpenSim.Region.ClientStack.Linden
             if (m_URL2 != string.Empty)
             {
                 m_Enabled = true;
-<<<<<<< HEAD
+
                 m_RedirectURL2 = config.GetString("GetMesh2RedirectURL");
             }
-=======
-         
->>>>>>> avn/ubitvar
         }
 
         public void AddRegion(Scene pScene)
@@ -177,7 +173,7 @@ namespace OpenSim.Region.ClientStack.Linden
 
                 for (uint i = 0; i < 2; i++)
                 {
-                    m_workerThreads[i] = Watchdog.StartThread(DoMeshRequests,
+                    m_workerThreads[i] = WorkManager.StartThread(DoMeshRequests,
                             String.Format("MeshWorkerThread{0}", i),
                             ThreadPriority.Normal,
                             false,
@@ -336,21 +332,6 @@ namespace OpenSim.Region.ClientStack.Linden
 
         public void RegisterCaps(UUID agentID, Caps caps)
         {
-<<<<<<< HEAD
-            UUID capID = UUID.Random();
-            bool getMeshRegistered = false;
-
-            if (m_URL == string.Empty)
-            {
-
-            }
-            else if (m_URL == "localhost")
-            {
-                getMeshRegistered = true;
-                caps.RegisterHandler(
-                    "GetMesh",
-                    new GetMeshHandler("/CAPS/" + capID + "/", m_AssetService, "GetMesh", agentID.ToString(), m_RedirectURL));
-=======
 //            UUID capID = UUID.Random();
             if (m_URL == "localhost")
             {
@@ -375,34 +356,13 @@ namespace OpenSim.Region.ClientStack.Linden
                 caps.RegisterHandler("GetMesh", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
                 m_pollservices[agentID] = args;
                 m_capsDict[agentID] = capUrl;
-
-
-           
->>>>>>> avn/ubitvar
             }
             else
             {
                 caps.RegisterHandler("GetMesh", m_URL);
             }
-
-            if(m_URL2 == string.Empty)
-            {
-
-            }
-            else if (m_URL2 == "localhost")
-            {
-                if (!getMeshRegistered)
-                {
-                    caps.RegisterHandler(
-                        "GetMesh2",
-                        new GetMeshHandler("/CAPS/" + capID + "/", m_AssetService, "GetMesh2", agentID.ToString(), m_RedirectURL2));
-                }
-            }
-            else
-            {
-                caps.RegisterHandler("GetMesh2", m_URL2);
-            }
         }
+
         private void DeregisterCaps(UUID agentID, Caps caps)
         {
             string capUrl;

+ 9 - 24
OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs

@@ -82,24 +82,22 @@ namespace OpenSim.Region.ClientStack.Linden
         private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue =
                 new OpenMetaverse.BlockingQueue<aPollRequest>();
 
-<<<<<<< HEAD
+
         // TODO: Change this to a config option
         private string m_RedirectURL = null;
-=======
-        private Dictionary<UUID,PollServiceTextureEventArgs> m_pollservices = new Dictionary<UUID,PollServiceTextureEventArgs>();
->>>>>>> avn/ubitvar
 
-        private string m_URL;
+        private Dictionary<UUID,PollServiceTextureEventArgs> m_pollservices = new Dictionary<UUID,PollServiceTextureEventArgs>();
+   
 
         #region ISharedRegionModule Members
 
         public void Initialise(IConfigSource source)
         {
             IConfig config = source.Configs["ClientStack.LindenCaps"];
-<<<<<<< HEAD
+
             if (config == null)
                 return;
-
+/*
             m_URL = config.GetString("Cap_GetTexture", string.Empty);
             // Cap doesn't exist
             if (m_URL != string.Empty)
@@ -107,10 +105,8 @@ namespace OpenSim.Region.ClientStack.Linden
                 m_Enabled = true;
                 m_RedirectURL = config.GetString("GetTextureRedirectURL");
             }
-=======
-            if (config != null)
-                m_Url = config.GetString("Cap_GetTexture", "localhost");
->>>>>>> avn/ubitvar
+*/
+            m_Url = config.GetString("Cap_GetTexture", "localhost");
         }
 
         public void AddRegion(Scene s)
@@ -142,7 +138,7 @@ namespace OpenSim.Region.ClientStack.Linden
 
                 for (uint i = 0; i < 2; i++)
                 {
-                    m_workerThreads[i] = Watchdog.StartThread(DoTextureRequests,
+                    m_workerThreads[i] = WorkManager.StartThread(DoTextureRequests,
                             String.Format("TextureWorkerThread{0}", i),
                             ThreadPriority.Normal,
                             false,
@@ -237,12 +233,6 @@ namespace OpenSim.Region.ClientStack.Linden
             public PollServiceTextureEventArgs(UUID pId, Scene scene) :
                     base(null, "", null, null, null, pId, int.MaxValue)              
             {
-<<<<<<< HEAD
-//                m_log.DebugFormat("[GETTEXTURE]: /CAPS/{0} in region {1}", capID, m_scene.RegionInfo.RegionName);
-                caps.RegisterHandler(
-                    "GetTexture",
-                    new GetTextureHandler("/CAPS/" + capID + "/", m_assetService, "GetTexture", agentID.ToString(), m_RedirectURL));
-=======
                 m_scene = scene;
                 // x is request id, y is userid
                 HasEvents = (x, y) =>
@@ -312,7 +302,6 @@ namespace OpenSim.Region.ClientStack.Linden
 
                     return response;
                 };
->>>>>>> avn/ubitvar
             }
 
             public void Process(aPollRequest requestinfo)
@@ -402,11 +391,7 @@ namespace OpenSim.Region.ClientStack.Linden
                 }
                 IExternalCapsModule handler = m_scene.RequestModuleInterface<IExternalCapsModule>();
                 if (handler != null)
-<<<<<<< HEAD
-                    handler.RegisterExternalUserCapsHandler(agentID,caps,"GetTexture", m_URL);
-=======
                     handler.RegisterExternalUserCapsHandler(agentID, caps, "GetTexture", capUrl);
->>>>>>> avn/ubitvar
                 else
                     caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
                 m_pollservices[agentID] = args;
@@ -422,7 +407,7 @@ namespace OpenSim.Region.ClientStack.Linden
         {
             PollServiceTextureEventArgs args;
 
-            MainServer.Instance.RemoveHTTPHandler("", m_URL);
+            MainServer.Instance.RemoveHTTPHandler("", m_Url);
             m_capsDict.Remove(agentID);
 
             if (m_pollservices.TryGetValue(agentID, out args))

+ 0 - 15
OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs

@@ -157,11 +157,7 @@ namespace OpenSim.Region.ClientStack.Linden
                 m_features["MeshXferEnabled"] = true;
 
                 m_features["PhysicsMaterialsEnabled"] = true;
-<<<<<<< HEAD
 
-=======
-   
->>>>>>> avn/ubitvar
                 OSDMap typesMap = new OSDMap();
                 typesMap["convex"] = true;
                 typesMap["none"] = true;
@@ -169,7 +165,6 @@ namespace OpenSim.Region.ClientStack.Linden
                 m_features["PhysicsShapeTypes"] = typesMap;
 
                 // Extra information for viewers that want to use it
-<<<<<<< HEAD
                 // TODO: Take these out of here into their respective modules, like map-server-url
                 OSDMap extrasMap;
                 if(m_features.ContainsKey("OpenSimExtras"))
@@ -179,15 +174,10 @@ namespace OpenSim.Region.ClientStack.Linden
                 else
                     extrasMap = new OSDMap();
 
-=======
-                
-                OSDMap extrasMap = new OSDMap();
-
                 extrasMap["AvatarSkeleton"] = true;
                 extrasMap["AnimationSet"] = true;
 
                 // TODO: Take these out of here into their respective modules, like map-server-url
->>>>>>> avn/ubitvar
                 if (m_SearchURL != string.Empty)
                     extrasMap["search-server-url"] = m_SearchURL;
                 if (!string.IsNullOrEmpty(m_DestinationGuideURL))
@@ -199,13 +189,8 @@ namespace OpenSim.Region.ClientStack.Linden
                 if (m_GridName != string.Empty)
                     extrasMap["GridName"] = m_GridName;
 
-<<<<<<< HEAD
                 if (extrasMap.Count > 0)
                     m_features["OpenSimExtras"] = extrasMap;
-=======
-                m_features["OpenSimExtras"] = extrasMap;
-
->>>>>>> avn/ubitvar
             }
         }
 

+ 2 - 0
OpenSim/Region/ClientStack/Linden/Caps/Tests/WebFetchInvDescModuleTests.cs

@@ -52,6 +52,7 @@ using OSDMap = OpenMetaverse.StructuredData.OSDMap;
 
 namespace OpenSim.Region.ClientStack.Linden.Caps.Tests
 {
+    /*
     [TestFixture]
     public class WebFetchInvDescModuleTests : OpenSimTestCase
     {
@@ -156,4 +157,5 @@ namespace OpenSim.Region.ClientStack.Linden.Caps.Tests
             Assert.That((int)folderOsd["descendents"], Is.EqualTo(16));
         }
     }
+     */
 }

+ 7 - 197
OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs

@@ -66,16 +66,19 @@ namespace OpenSim.Region.ClientStack.Linden
         private bool m_persistBakedTextures;
 
         private IBakedTextureModule m_BakedTextureModule;
-
-        private IBakedTextureModule m_BakedTextureModule;
+        private string m_URL;
 
         public void Initialise(IConfigSource source)
         {
+            IConfig config = source.Configs["ClientStack.LindenCaps"];
+            if (config == null)
+                return;
+
+            m_URL = config.GetString("Cap_UploadBakedTexture", string.Empty);
+
             IConfig appearanceConfig = source.Configs["Appearance"];
             if (appearanceConfig != null)
                 m_persistBakedTextures = appearanceConfig.GetBoolean("PersistBakedTextures", m_persistBakedTextures);
-
-
         }
 
         public void AddRegion(Scene s)
@@ -91,13 +94,7 @@ namespace OpenSim.Region.ClientStack.Linden
             s.EventManager.OnRemovePresence -= DeRegisterPresence;
             m_BakedTextureModule = null;
             m_scene = null;
-<<<<<<< HEAD
-        }
-=======
         }     
->>>>>>> avn/ubitvar
-
-       
 
         public void RegionLoaded(Scene s)
         {
@@ -109,173 +106,6 @@ namespace OpenSim.Region.ClientStack.Linden
 
         private void DeRegisterPresence(UUID agentId)
         {
-<<<<<<< HEAD
-            ScenePresence presence = null;
-            if (m_scene.TryGetScenePresence(agentId, out presence))
-            {
-                presence.ControllingClient.OnSetAppearance -= CaptureAppearanceSettings;
-            }
-
-        }
-
-        private void RegisterNewPresence(ScenePresence presence)
-        {
-           presence.ControllingClient.OnSetAppearance += CaptureAppearanceSettings;
-
-        }
-
-        private void CaptureAppearanceSettings(IClientAPI remoteClient, Primitive.TextureEntry textureEntry, byte[] visualParams, Vector3 avSize, WearableCacheItem[] cacheItems)
-        {
-            int maxCacheitemsLoop = cacheItems.Length;
-            if (maxCacheitemsLoop > AvatarWearable.MAX_WEARABLES)
-            {
-                maxCacheitemsLoop = AvatarWearable.MAX_WEARABLES;
-                m_log.WarnFormat("[CACHEDBAKES]: Too Many Cache items Provided {0}, the max is {1}.  Truncating!", cacheItems.Length, AvatarWearable.MAX_WEARABLES);
-            }
-
-            m_BakedTextureModule = m_scene.RequestModuleInterface<IBakedTextureModule>();
-            if (cacheItems.Length > 0)
-            {
-//                m_log.Debug("[Cacheitems]: " + cacheItems.Length);
-//                for (int iter = 0; iter < maxCacheitemsLoop; iter++)
-//                {
-//                    m_log.Debug("[Cacheitems] {" + iter + "/" + cacheItems[iter].TextureIndex + "}: c-" + cacheItems[iter].CacheId + ", t-" +
-//                                      cacheItems[iter].TextureID);
-//                }
-               
-                ScenePresence p = null;
-                if (m_scene.TryGetScenePresence(remoteClient.AgentId, out p))
-                {
-
-                    WearableCacheItem[] existingitems = p.Appearance.WearableCacheItems;
-                    if (existingitems == null)
-                    {
-                        if (m_BakedTextureModule != null)
-                        {
-                            WearableCacheItem[] savedcache = null;
-                            try
-                            {
-                                if (p.Appearance.WearableCacheItemsDirty)
-                                {
-                                    savedcache = m_BakedTextureModule.Get(p.UUID);
-                                    p.Appearance.WearableCacheItems = savedcache;
-                                    p.Appearance.WearableCacheItemsDirty = false;
-                                }
-
-                            }
-                            /*
-                             * The following Catch types DO NOT WORK with m_BakedTextureModule.Get
-                             * it jumps to the General Packet Exception Handler if you don't catch Exception!
-                             * 
-                            catch (System.Net.Sockets.SocketException)
-                            {
-                                cacheItems = null;
-                            }
-                            catch (WebException)
-                            {
-                                cacheItems = null;
-                            }
-                            catch (InvalidOperationException)
-                            {
-                                cacheItems = null;
-                            } */
-                            catch (Exception)
-                            {
-                               // The service logs a sufficient error message.
-                            }
-                            
-
-                            if (savedcache != null)
-                                existingitems = savedcache;
-                        }
-                    }
-                    // Existing items null means it's a fully new appearance
-                    if (existingitems == null)
-                    {
-
-                        for (int i = 0; i < maxCacheitemsLoop; i++)
-                        {
-                            if (textureEntry.FaceTextures.Length > cacheItems[i].TextureIndex)
-                            {
-                                Primitive.TextureEntryFace face = textureEntry.FaceTextures[cacheItems[i].TextureIndex];
-                                if (face == null)
-                                {
-                                    textureEntry.CreateFace(cacheItems[i].TextureIndex);
-                                    textureEntry.FaceTextures[cacheItems[i].TextureIndex].TextureID =
-                                        AppearanceManager.DEFAULT_AVATAR_TEXTURE;
-                                    continue;
-                                }
-                                cacheItems[i].TextureID =face.TextureID;
-                                if (m_scene.AssetService != null)
-                                    cacheItems[i].TextureAsset =
-                                        m_scene.AssetService.GetCached(cacheItems[i].TextureID.ToString());
-                            }
-                            else
-                            {
-                                m_log.WarnFormat("[CACHEDBAKES]: Invalid Texture Index Provided, Texture doesn't exist or hasn't been uploaded yet {0}, the max is {1}.  Skipping!", cacheItems[i].TextureIndex, textureEntry.FaceTextures.Length);
-                            }
-
-
-                        }
-                    }
-                    else
-
-
-                    {
-                        // for each uploaded baked texture
-                        for (int i = 0; i < maxCacheitemsLoop; i++)
-                        {
-                            if (textureEntry.FaceTextures.Length > cacheItems[i].TextureIndex)
-                            {
-                                Primitive.TextureEntryFace face = textureEntry.FaceTextures[cacheItems[i].TextureIndex];
-                                if (face == null)
-                                {
-                                    textureEntry.CreateFace(cacheItems[i].TextureIndex);
-                                    textureEntry.FaceTextures[cacheItems[i].TextureIndex].TextureID =
-                                        AppearanceManager.DEFAULT_AVATAR_TEXTURE;
-                                    continue;
-                                }
-                                cacheItems[i].TextureID =
-                                    face.TextureID;
-                            }
-                            else
-                            {
-                                m_log.WarnFormat("[CACHEDBAKES]: Invalid Texture Index Provided, Texture doesn't exist or hasn't been uploaded yet {0}, the max is {1}.  Skipping!", cacheItems[i].TextureIndex, textureEntry.FaceTextures.Length);
-                            }
-                        }
-
-                        for (int i = 0; i < maxCacheitemsLoop; i++)
-                        {
-                            if (cacheItems[i].TextureAsset == null)
-                            {
-                                cacheItems[i].TextureAsset =
-                                    m_scene.AssetService.GetCached(cacheItems[i].TextureID.ToString());
-                            }
-                        }
-                    }
-
-
-
-                    p.Appearance.WearableCacheItems = cacheItems;
-                    
-                   
-
-                    if (m_BakedTextureModule != null)
-                    {
-                        m_BakedTextureModule.Store(remoteClient.AgentId, cacheItems);
-                        p.Appearance.WearableCacheItemsDirty = true;
-                        
-                    }
-                }
-            }
-=======
-//            ScenePresence presence = null;
-//            if (m_scene.TryGetScenePresence(agentId, out presence))
-            {
-//                presence.ControllingClient.OnSetAppearance -= CaptureAppearanceSettings;
-            }
-
->>>>>>> avn/ubitvar
         }
 
         private void RegisterNewPresence(ScenePresence presence)
@@ -441,25 +271,6 @@ namespace OpenSim.Region.ClientStack.Linden
 
         public void RegisterCaps(UUID agentID, Caps caps)
         {
-            UploadBakedTextureHandler avatarhandler = new UploadBakedTextureHandler(
-                caps, m_scene.AssetService, m_persistBakedTextures);
-
-<<<<<<< HEAD
-           
-            
-            caps.RegisterHandler(
-                "UploadBakedTexture",
-                new RestStreamHandler(
-                    "POST",
-                    "/CAPS/" + caps.CapsObjectPath + m_uploadBakedTexturePath,
-                    avatarhandler.UploadBakedTexture,
-                    "UploadBakedTexture",
-                    agentID.ToString()));
-
-           
-            
-
-=======
             //caps.RegisterHandler("GetTexture", new StreamHandler("GET", "/CAPS/" + capID, ProcessGetTexture));
             if (m_URL == "localhost")
             {
@@ -480,7 +291,6 @@ namespace OpenSim.Region.ClientStack.Linden
             {
                 caps.RegisterHandler("UploadBakedTexture", m_URL);
             }
->>>>>>> avn/ubitvar
         }
     }
 }

+ 0 - 4
OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs

@@ -64,11 +64,7 @@ namespace OpenSim.Region.ClientStack.Linden
             public List<UUID> folders;
         }
 
-<<<<<<< HEAD
-         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-=======
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
->>>>>>> avn/ubitvar
 
         /// <summary>
         /// Control whether requests will be processed asynchronously.

+ 18 - 246
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs

@@ -723,11 +723,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 if (!m_packetHandlers.ContainsKey(packetType))
                 {
                     m_packetHandlers.Add(
-<<<<<<< HEAD
                         packetType, new PacketProcessor() { method = handler, Async = doAsync, InEngine = inEngine });
-=======
-                        packetType, new PacketProcessor() { method = handler, Async = doAsync });
->>>>>>> avn/ubitvar
                     result = true;
                 }
             }
@@ -1228,15 +1224,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// <param name="map">heightmap</param>
         public virtual void SendLayerData(float[] map)
         {
-<<<<<<< HEAD
             Util.FireAndForget(DoSendLayerData, m_scene.Heightmap.GetTerrainData(), "LLClientView.DoSendLayerData");
-=======
-            Util.FireAndForget(DoSendLayerData, m_scene.Heightmap.GetTerrainData());
 
             // Send it sync, and async. It's not that much data
             // and it improves user experience just so much!
 //            DoSendLayerData(map);
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -1250,18 +1242,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             try
             {
                 // Send LayerData in typerwriter pattern
-<<<<<<< HEAD
-                //for (int y = 0; y < 16; y++)
-                //{
-                //    for (int x = 0; x < 16; x++)
-                //    {
-                //        SendLayerData(x, y, map);
-                //    }
-                //}
-
-                // Send LayerData in a spiral pattern. Fun!
-                SendLayerTopRight(map, 0, 0, map.SizeX/Constants.TerrainPatchSize-1, map.SizeY/Constants.TerrainPatchSize-1);
-=======
+
                 for (int y = 0; y < 16; y++)
                 {
                     for (int x = 0; x < 16; x++)
@@ -1269,7 +1250,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                         SendLayerData(x, y, map);
                     }
                 }
->>>>>>> avn/ubitvar
             }
             catch (Exception e)
             {
@@ -1277,74 +1257,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
         }
 
-<<<<<<< HEAD
-        private void SendLayerTopRight(TerrainData map, int x1, int y1, int x2, int y2)
-=======
-        // Legacy form of invocation that passes around a bare data array.
-        // Just ignore what was passed and use the real terrain info that is part of the scene.
-        // As a HORRIBLE kludge in an attempt to not change the definition of IClientAPI, 
-        //    there is a special form for specifying multiple terrain patches to send.
-        //    The form is to pass 'px' as negative the number of patches to send and to
-        //    pass the float array as pairs of patch X and Y coordinates. So, passing 'px'
-        //    as -2 and map= [3, 5, 8, 4] would mean to send two terrain heightmap patches
-        //    and the patches to send are <3,5> and <8,4>.
-        public void SendLayerData(int px, int py, float[] map)
->>>>>>> avn/ubitvar
-        {
-            if (px >= 0)
-            {
-                SendLayerData(px, py, m_scene.Heightmap.GetTerrainData());
-            }
-            else
-            {
-                int numPatches = -px;
-                int[] xPatches = new int[numPatches];
-                int[] yPatches = new int[numPatches];
-                for (int pp = 0; pp < numPatches; pp++)
-                {
-                    xPatches[pp] = (int)map[pp * 2];
-                    yPatches[pp] = (int)map[pp * 2 + 1];
-                }
-
-                // DebugSendingPatches("SendLayerData", xPatches, yPatches);
-
-<<<<<<< HEAD
-            if (x2 - x1 > 0 && y2 - y1 > 0)
-                SendLayerBottomLeft(map, x1, y1 + 1, x2 - 1, y2);
-        }
-
-        void SendLayerBottomLeft(TerrainData map, int x1, int y1, int x2, int y2)
-        {
-            // Row in reverse
-            for (int i = x2; i >= x1; i--)
-                SendLayerData(i, y2, map);
-
-            // Column in reverse
-            for (int j = y2 - 1; j >= y1; j--)
-                SendLayerData(x1, j, map);
-
-            if (x2 - x1 > 0 && y2 - y1 > 0)
-                SendLayerTopRight(map, x1 + 1, y1, x2, y2 - 1);
-        }
-
-        /// <summary>
-        /// Sends a set of four patches (x, x+1, ..., x+3) to the client
-        /// </summary>
-        /// <param name="map">heightmap</param>
-        /// <param name="px">X coordinate for patches 0..12</param>
-        /// <param name="py">Y coordinate for patches 0..15</param>
-        // private void SendLayerPacket(float[] map, int y, int x)
-        // {
-        //     int[] patches = new int[4];
-        //     patches[0] = x + 0 + y * 16;
-        //     patches[1] = x + 1 + y * 16;
-        //     patches[2] = x + 2 + y * 16;
-        //     patches[3] = x + 3 + y * 16;
-
-        //     Packet layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches);
-        //     OutPacket(layerpack, ThrottleOutPacketType.Land);
-        // }
-
         // Legacy form of invocation that passes around a bare data array.
         // Just ignore what was passed and use the real terrain info that is part of the scene.
         // As a HORRIBLE kludge in an attempt to not change the definition of IClientAPI, 
@@ -1393,29 +1305,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         }
 
         /// <summary>
-=======
-                SendLayerData(xPatches, yPatches, m_scene.Heightmap.GetTerrainData());
-            }
-        }
 
-        private void DebugSendingPatches(string pWho, int[] pX, int[] pY)
-        {
-            if (m_log.IsDebugEnabled)
-            {
-                int numPatches = pX.Length;
-                string Xs = "";
-                string Ys = "";
-                for (int pp = 0; pp < numPatches; pp++)
-                {
-                    Xs += String.Format("{0}", (int)pX[pp]) + ",";
-                    Ys += String.Format("{0}", (int)pY[pp]) + ",";
-                }
-                m_log.DebugFormat("{0} {1}: numPatches={2}, X={3}, Y={4}", LogHeader, pWho, numPatches, Xs, Ys);
-            }
-        }
-
-        /// <summary>
->>>>>>> avn/ubitvar
         /// Sends a terrain packet for the point specified.
         /// This is a legacy call that has refarbed the terrain into a flat map of floats.
         /// We just use the terrain from the region we know about.
@@ -1467,40 +1357,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
         }
 
-<<<<<<< HEAD
-        // When a user edits the terrain, so much data is sent, the data queues up fast and presents a
-        // sub optimal editing experience. To alleviate this issue, when the user edits the terrain, we
-        // start skipping the queues until they're done editing the terrain. We also make them
-        // unreliable because it's extremely likely that multiple packets will be sent for a terrain patch
-        // area invalidating previous packets for that area.
-
-        // It's possible for an editing user to flood themselves with edited packets but the majority
-        // of use cases are such that only a tiny percentage of users will be editing the terrain.
-        // Other, non-editing users will see the edits much slower.
-        
-        // One last note on this topic, by the time users are going to be editing the terrain, it's
-        // extremely likely that the sim will have rezzed already and therefore this is not likely going
-        // to cause any additional issues with lost packets, objects or terrain patches.
-
-        // m_justEditedTerrain is volatile, so test once and duplicate two affected statements so we
-        //    only have one cache miss.
         private void SendTheLayerPacket(LayerDataPacket layerpack)
-        {
-            if (m_justEditedTerrain)
-            {
-                layerpack.Header.Reliable = false;
-                OutPacket(layerpack, ThrottleOutPacketType.Unknown );
-            }
-            else
-            {
-                layerpack.Header.Reliable = true;
-                OutPacket(layerpack, ThrottleOutPacketType.Land);
-            }
-=======
-          private void SendTheLayerPacket(LayerDataPacket layerpack)
         {
                 OutPacket(layerpack, ThrottleOutPacketType.Land);
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -2490,15 +2349,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         {
             if (agentid == AgentId)
             {
-<<<<<<< HEAD
                 ActiveGroupId = activegroupid;
                 ActiveGroupName = groupname;
                 ActiveGroupPowers = grouppowers;
-=======
-                m_activeGroupID = activegroupid;
-                m_activeGroupName = groupname;
-                m_activeGroupPowers = grouppowers;
->>>>>>> avn/ubitvar
             }
 
             AgentDataUpdatePacket sendAgentDataUpdate = (AgentDataUpdatePacket)PacketPool.Instance.GetPacket(PacketType.AgentDataUpdate);
@@ -3888,15 +3741,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             avp.Sender.IsTrial = false;
             avp.Sender.ID = agentID;
             avp.AppearanceData = new AvatarAppearancePacket.AppearanceDataBlock[0];
-<<<<<<< HEAD
             avp.AppearanceHover = new AvatarAppearancePacket.AppearanceHoverBlock[0];
-=======
 
-            // this need be use in future
- //           avp.AppearanceData[0].AppearanceVersion = 0;
- //           avp.AppearanceData[0].CofVersion = 0;
+// this need be use in future ?
+//           avp.AppearanceData[0].AppearanceVersion = 0;
+//           avp.AppearanceData[0].CofVersion = 0;
 
->>>>>>> avn/ubitvar
             //m_log.DebugFormat("[CLIENT]: Sending appearance for {0} to {1}", agentID.ToString(), AgentId.ToString());
             OutPacket(avp, ThrottleOutPacketType.Task | ThrottleOutPacketType.HighPriority);
         }
@@ -4014,22 +3864,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// </summary>
         public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags)
         {
-<<<<<<< HEAD
             if (entity.UUID == m_agentId && !updateFlags.HasFlag(PrimUpdateFlags.FullUpdate))
             {
                 ImprovedTerseObjectUpdatePacket packet
                     = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ImprovedTerseObjectUpdate);
-=======
-            if (entity is SceneObjectPart)
-            {
-                SceneObjectPart e = (SceneObjectPart)entity;
-                SceneObjectGroup g = e.ParentGroup;
-                if (g.HasPrivateAttachmentPoint && g.OwnerID != AgentId)
-                        return; // Don't send updates for other people's HUDs
-            }
-
-            uint priority = m_prioritizer.GetUpdatePriority(this, entity);
->>>>>>> avn/ubitvar
 
                 packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
                 packet.RegionData.TimeDilation = Utils.FloatToUInt16(1, 0.0f, 1.0f);
@@ -4037,6 +3875,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 packet.ObjectData[0] = CreateImprovedTerseBlock(entity, false);
                 OutPacket(packet, ThrottleOutPacketType.Unknown, true);
             }
+
+            else if (entity is SceneObjectPart)
+            {
+                SceneObjectPart e = (SceneObjectPart)entity;
+                SceneObjectGroup g = e.ParentGroup;
+                if (g.HasPrivateAttachmentPoint && g.OwnerID != AgentId)
+                        return; // Don't send updates for other people's HUDs
+            }
+
             else
             {
                 //double priority = m_prioritizer.GetUpdatePriority(this, entity);
@@ -4385,15 +4232,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
                 OutPacket(packet, ThrottleOutPacketType.Task, true);
             }
-<<<<<<< HEAD
 
 //            m_log.DebugFormat(
 //                "[LLCLIENTVIEW]: Sent {0} updates in ProcessEntityUpdates() for {1} {2} in {3}", 
 //                updatesThisCall, Name, SceneAgent.IsChildAgent ? "child" : "root", Scene.Name);
 //
-            #endregion Packet Sending
-=======
->>>>>>> avn/ubitvar
         }
         
         public void ReprioritizeUpdates()
@@ -5360,11 +5203,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             {
                 ScenePresence presence = (ScenePresence)entity;
 
-<<<<<<< HEAD
-//                m_log.DebugFormat( 
-//                    "[LLCLIENTVIEW]: Sending terse update to {0} with pos {1}, vel {2} in {3}", 
-//                    Name, presence.OffsetPosition, presence.Velocity, m_scene.Name);
-=======
                 position = presence.OffsetPosition;
                 rotation = presence.Rotation;
                 angularVelocity = presence.AngularVelocity;
@@ -5373,7 +5211,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 attachPoint = 0;
 //                m_log.DebugFormat(
 //                    "[LLCLIENTVIEW]: Sending terse update to {0} with position {1} in {2}", Name, presence.OffsetPosition, m_scene.Name);
->>>>>>> avn/ubitvar
 
                 // attachPoint = presence.State; // Core: commented
                 collisionPlane = presence.CollisionPlane;
@@ -5495,24 +5332,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 //                "[LLCLIENTVIEW]: Sending full update to {0} with pos {1}, vel {2} in {3}", Name, data.OffsetPosition, data.Velocity, m_scene.Name);
 
             byte[] objectData = new byte[76];
-<<<<<<< HEAD
-
-            data.CollisionPlane.ToBytes(objectData, 0);
-            data.OffsetPosition.ToBytes(objectData, 16);
-            data.Velocity.ToBytes(objectData, 28);
-//            data.Acceleration.ToBytes(objectData, 40);
-
-            // Whilst not in mouselook, an avatar will transmit only the Z rotation as this is the only axis
-            // it rotates around.
-            // In mouselook, X and Y co-ordinate will also be sent but when used in Rotation, these cause unwanted
-            // excessive up and down movements of the camera when looking up and down.
-            // See http://opensimulator.org/mantis/view.php?id=3274
-            // This does not affect head movement, since this is controlled entirely by camera movement rather than
-            // body rotation.  We still need to transmit X and Y for sitting avatars but mouselook does not change
-            // the rotation in this case.
-            Quaternion rot = data.Rotation;
-=======
->>>>>>> avn/ubitvar
 
             Vector3 velocity = new Vector3(0, 0, 0);
             Vector3 acceleration = new Vector3(0, 0, 0);
@@ -5596,11 +5415,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             //update.JointType = 0;
             update.Material = data.Material;
             update.MediaURL = Utils.EmptyBytes; // FIXME: Support this in OpenSim
-<<<<<<< HEAD
-
-=======
 /*
->>>>>>> avn/ubitvar
             if (data.ParentGroup.IsAttachment)
             {
                 update.NameValue 
@@ -5625,7 +5440,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 // case for attachments may contain conflicting values that can end up crashing the viewer.
                 update.State = data.ParentGroup.RootPart.Shape.State;
             }
- */
+*/
 
             if (data.ParentGroup.IsAttachment)
             {
@@ -9365,11 +9180,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 if ((locX >= m_scene.RegionInfo.WorldLocX)
                             && (locX < (m_scene.RegionInfo.WorldLocX + m_scene.RegionInfo.RegionSizeX))
                             && (locY >= m_scene.RegionInfo.WorldLocY)
-<<<<<<< HEAD
-                            && (locY < (m_scene.RegionInfo.WorldLocY + m_scene.RegionInfo.RegionSizeY)) )
-=======
                             && (locY < (m_scene.RegionInfo.WorldLocY + m_scene.RegionInfo.RegionSizeY)))
->>>>>>> avn/ubitvar
                 {
                     tpLocReq.Info.RegionHandle = m_scene.RegionInfo.RegionHandle;
                     tpLocReq.Info.Position.X += locX - m_scene.RegionInfo.WorldLocX;
@@ -12285,7 +12096,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// <param name="packet"></param>
         /// <returns></returns>
         // TODO: Convert old handler to use new method
-        /*protected bool HandleAgentTextureCached(IClientAPI simclient, Packet packet)
+/*
+        protected bool HandleAgentTextureCached(IClientAPI simclient, Packet packet)
         {
             AgentCachedTexturePacket cachedtex = (AgentCachedTexturePacket)packet;
             AgentCachedTextureResponsePacket cachedresp = (AgentCachedTextureResponsePacket)PacketPool.Instance.GetPacket(PacketType.AgentCachedTextureResponse);
@@ -12340,27 +12152,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 }
             }
 
-<<<<<<< HEAD
-            if (cacheItems != null)
-            {
-                // We need to make sure the asset stored in the bake is available on this server also by its assetid before we map it to a Cacheid.
-                // Copy the baked textures to the sim's assets cache (local only).
-                foreach (WearableCacheItem item in cacheItems)
-                {
-                    if (cache.GetCached(item.TextureID.ToString()) == null)
-                    {
-                        item.TextureAsset.Temporary = true;
-                        item.TextureAsset.Local = true;
-                        cache.Store(item.TextureAsset);
-                    }
-                }
-
-                // Return the cached textures
-                for (int i = 0; i < maxWearablesLoop; i++)
-                {
-                    WearableCacheItem item =
-                        WearableCacheItem.SearchTextureIndex(cachedtex.WearableData[i].TextureIndex, cacheItems);
-=======
             CachedTextureRequest handlerCachedTextureRequest = OnCachedTextureRequest;
             if (handlerCachedTextureRequest != null)
             {
@@ -12368,7 +12159,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
 
             return true;
-        }*/
+        }
+*/
 
         protected bool HandleAgentTextureCached(IClientAPI simclient, Packet packet)
         {
@@ -12408,21 +12200,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 for (int i = 0; i < maxWearablesLoop; i++)
                 {
                     int idx = cachedtex.WearableData[i].TextureIndex;
->>>>>>> avn/ubitvar
-
                     cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock();
                     cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex;
                     cachedresp.WearableData[i].HostName = new byte[0];
-<<<<<<< HEAD
-                    if (item != null && cachedtex.WearableData[i].ID == item.CacheId)
-                    {
-                        cachedresp.WearableData[i].TextureID = item.TextureID;
-=======
                     if (cachedtex.WearableData[i].ID == cacheItems[idx].CacheId)
                     {
                         cachedresp.WearableData[i].TextureID = cacheItems[idx].TextureID;
                         cacheHits++;
->>>>>>> avn/ubitvar
                     }
                     else
                     {
@@ -12432,29 +12216,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
             else
             {
-<<<<<<< HEAD
-                // Cached textures not available
-=======
->>>>>>> avn/ubitvar
                 for (int i = 0; i < maxWearablesLoop; i++)
                 {
                     cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock();
                     cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex;
                     cachedresp.WearableData[i].TextureID = UUID.Zero;
-<<<<<<< HEAD
-                    cachedresp.WearableData[i].HostName = new byte[0];
-                }
-            }
-            
-=======
-                    //UUID.Parse("8334fb6e-c2f5-46ee-807d-a435f61a8d46");
                     cachedresp.WearableData[i].HostName = new byte[0];
                 }
             }
 
             m_log.DebugFormat("texture cached: hits {0}", cacheHits);
 
->>>>>>> avn/ubitvar
             cachedresp.Header.Zerocoded = true;
             OutPacket(cachedresp, ThrottleOutPacketType.Task);
 

+ 8 - 66
OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs

@@ -96,9 +96,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             set
             {
                 m_throttleDebugLevel = value;
+/*
                 m_throttleClient.DebugLevel = m_throttleDebugLevel;
                 foreach (TokenBucket tb in m_throttleCategories)
                     tb.DebugLevel = m_throttleDebugLevel;
+ */
             }
         }
         private int m_throttleDebugLevel;
@@ -250,22 +252,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             if (maxRTO != 0)
                 m_maxRTO = maxRTO;
 
-<<<<<<< HEAD
-            ProcessUnackedSends = true;
-
-            // Create a token bucket throttle for this client that has the scene token bucket as a parent
-            m_throttleClient 
-                = new AdaptiveTokenBucket(
-                    string.Format("adaptive throttle for {0} in {1}", AgentID, server.Scene.Name), 
-                    parentThrottle, 0, rates.Total, rates.MinimumAdaptiveThrottleRate, rates.AdaptiveThrottlesEnabled);
-
-=======
             m_burstTime = rates.BrustTime;
             float m_burst = rates.ClientMaxRate * m_burstTime;
 
             // Create a token bucket throttle for this client that has the scene token bucket as a parent
             m_throttleClient = new AdaptiveTokenBucket(parentThrottle, rates.ClientMaxRate, m_burst, rates.AdaptiveThrottlesEnabled);
->>>>>>> avn/ubitvar
+
             // Create an array of token buckets for this clients different throttle categories
             m_throttleCategories = new TokenBucket[THROTTLE_CATEGORY_COUNT];
 
@@ -278,19 +270,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 ThrottleOutPacketType type = (ThrottleOutPacketType)i;
 
                 // Initialize the packet outboxes, where packets sit while they are waiting for tokens
-<<<<<<< HEAD
-                m_packetOutboxes[i] = new OpenSim.Framework.LocklessQueue<OutgoingPacket>();
-
-                // Initialize the token buckets that control the throttling for each category
-                m_throttleCategories[i]
-                    = new TokenBucket(
-                        string.Format("{0} throttle for {1} in {2}", type, AgentID, server.Scene.Name), 
-                    m_throttleClient, rates.GetRate(type), 0);
-=======
                 m_packetOutboxes[i] = new DoubleLocklessQueue<OutgoingPacket>();
                 // Initialize the token buckets that control the throttling for each category
                 m_throttleCategories[i] = new TokenBucket(m_throttleClient, rates.GetRate(type), m_burst);
->>>>>>> avn/ubitvar
             }
 
             // Default the retransmission timeout to one second
@@ -337,12 +319,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             m_info.assetThrottle = (int)m_throttleCategories[(int)ThrottleOutPacketType.Asset].DripRate;
             m_info.textureThrottle = (int)m_throttleCategories[(int)ThrottleOutPacketType.Texture].DripRate;
             m_info.totalThrottle = (int)m_throttleClient.DripRate;
-<<<<<<< HEAD
-            m_info.targetThrottle = (int)m_throttleClient.TargetDripRate;
-            m_info.maxThrottle = (int)m_throttleClient.MaxDripRate;
-=======
->>>>>>> avn/ubitvar
-
             return m_info;
         }
 
@@ -460,13 +436,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             int texture = (int)(BitConverter.ToSingle(adjData, pos) * scale); pos += 4;
             int asset = (int)(BitConverter.ToSingle(adjData, pos) * scale);
 
-            if (ThrottleDebugLevel > 0)
-            {
-                long total = resend + land + wind + cloud + task + texture + asset;
-                m_log.DebugFormat(
-                    "[LLUDPCLIENT]: {0} is setting throttles in {1} to Resend={2}, Land={3}, Wind={4}, Cloud={5}, Task={6}, Texture={7}, Asset={8}, TOTAL = {9}",
-                    AgentID, m_udpServer.Scene.Name, resend, land, wind, cloud, task, texture, asset, total);
-            }
+
 
             // Make sure none of the throttles are set below our packet MTU,
             // otherwise a throttle could become permanently clogged
@@ -486,32 +456,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             // the task queue (e.g. object updates)
             task = task + (int)(m_cannibalrate * texture);
             texture = (int)((1 - m_cannibalrate) * texture);
-<<<<<<< HEAD
-            
-            //int total = resend + land + wind + cloud + task + texture + asset;
-
-            if (ThrottleDebugLevel > 0)
-            {
-                long total = resend + land + wind + cloud + task + texture + asset;
-                m_log.DebugFormat(
-                    "[LLUDPCLIENT]: {0} is setting throttles in {1} to Resend={2}, Land={3}, Wind={4}, Cloud={5}, Task={6}, Texture={7}, Asset={8}, TOTAL = {9}",
-                    AgentID, m_udpServer.Scene.Name, resend, land, wind, cloud, task, texture, asset, total);
-            }
-=======
 
             int total = resend + land + wind + cloud + task + texture + asset;
 
             float m_burst = total * m_burstTime;
 
-            //m_log.DebugFormat("[LLUDPCLIENT]: {0} is setting throttles. Resend={1}, Land={2}, Wind={3}, Cloud={4}, Task={5}, Texture={6}, Asset={7}, Total={8}",
-            //                  AgentID, resend, land, wind, cloud, task, texture, asset, total);
->>>>>>> avn/ubitvar
-
-            // Update the token buckets with new throttle values
-            if (m_throttleClient.AdaptiveEnabled)
+            if (ThrottleDebugLevel > 0)
             {
-                long total = resend + land + wind + cloud + task + texture + asset;
-                m_throttleClient.TargetDripRate = total;
+                m_log.DebugFormat(
+                    "[LLUDPCLIENT]: {0} is setting throttles in {1} to Resend={2}, Land={3}, Wind={4}, Cloud={5}, Task={6}, Texture={7}, Asset={8}, TOTAL = {9}",
+                    AgentID, m_udpServer.Scene.Name, resend, land, wind, cloud, task, texture, asset, total);
             }
 
             TokenBucket bucket;
@@ -887,20 +841,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// signature</param>
         public void FireQueueEmpty(object o)
         {
-<<<<<<< HEAD
-//            m_log.DebugFormat("[LLUDPCLIENT]: FireQueueEmpty for {0} in {1}", AgentID, m_udpServer.Scene.Name);
-
-//            int start = Environment.TickCount & Int32.MaxValue;
-//            const int MIN_CALLBACK_MS = 30;
-
-//            if (m_udpServer.IsRunningOutbound)
-//            {        
-                ThrottleOutPacketTypeFlags categories = (ThrottleOutPacketTypeFlags)o;
-                QueueEmpty callback = OnQueueEmpty;                      
-=======
             ThrottleOutPacketTypeFlags categories = (ThrottleOutPacketTypeFlags)o;
             QueueEmpty callback = OnQueueEmpty;
->>>>>>> avn/ubitvar
 
             if (callback != null)
             {

+ 18 - 254
OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs

@@ -473,17 +473,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
             #endregion BinaryStats
 
-<<<<<<< HEAD
-            // FIXME: Can't add info here because don't know scene yet.
-//            m_throttle 
-//                = new TokenBucket(
-//                    string.Format("server throttle bucket for {0}", Scene.Name), null, sceneThrottleBps);
-
-            Throttle = new TokenBucket("server throttle bucket", null, 0, sceneThrottleBps);
-
-=======
-            m_throttle = new TokenBucket(null, sceneThrottleBps, sceneThrottleBps * 10e-3f);
->>>>>>> avn/ubitvar
+            Throttle = new TokenBucket(null, sceneThrottleBps, sceneThrottleBps * 10e-3f);
             ThrottleRates = new ThrottleRates(configSource);
 
             Random rnd = new Random(Util.EnvironmentTickCount());
@@ -784,151 +774,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             if (UsePools)
                 EnablePoolStats();
 
-<<<<<<< HEAD
+
             LLUDPServerCommands commands = new LLUDPServerCommands(MainConsole.Instance, this);
             commands.Register();
-=======
-            MainConsole.Instance.Commands.AddCommand(
-                "Debug", false, "debug lludp packet",
-                 "debug lludp packet [--default] <level> [<avatar-first-name> <avatar-last-name>]",
-                 "Turn on packet debugging",
-                   "If level >  255 then all incoming and outgoing packets are logged.\n"
-                 + "If level <= 255 then incoming AgentUpdate and outgoing SimStats and SimulatorViewerTimeMessage packets are not logged.\n"
-                 + "If level <= 200 then incoming RequestImage and outgoing ImagePacket, ImageData, LayerData and CoarseLocationUpdate packets are not logged.\n"
-                 + "If level <= 100 then incoming ViewerEffect and AgentAnimation and outgoing ViewerEffect and AvatarAnimation packets are not logged.\n"
-                 + "If level <=  50 then outgoing ImprovedTerseObjectUpdate packets are not logged.\n"
-                 + "If level <= 0 then no packets are logged.\n"
-                 + "If --default is specified then the level becomes the default logging level for all subsequent agents.\n"
-                 + "In this case, you cannot also specify an avatar name.\n"
-                 + "If an avatar name is given then only packets from that avatar are logged.",
-                 HandlePacketCommand);
-
-            MainConsole.Instance.Commands.AddCommand(
-                "Debug",
-                false,
-                "debug lludp start",
-                "debug lludp start <in|out|all>",
-                "Control LLUDP packet processing.",
-                "No effect if packet processing has already started.\n"
-                    + "in  - start inbound processing.\n"
-                    + "out - start outbound processing.\n"
-                    + "all - start in and outbound processing.\n",
-                HandleStartCommand);
-
-            MainConsole.Instance.Commands.AddCommand(
-                "Debug",
-                false,
-                "debug lludp stop",
-                "debug lludp stop <in|out|all>",
-                "Stop LLUDP packet processing.",
-                "No effect if packet processing has already stopped.\n"
-                    + "in  - stop inbound processing.\n"
-                    + "out - stop outbound processing.\n"
-                    + "all - stop in and outbound processing.\n",
-                HandleStopCommand);
-
-            MainConsole.Instance.Commands.AddCommand(
-                "Debug",
-                false,
-                "debug lludp pool",
-                "debug lludp pool <on|off>",
-                "Turn object pooling within the lludp component on or off.",
-                HandlePoolCommand);
-
-            MainConsole.Instance.Commands.AddCommand(
-                "Debug",
-                false,
-                "debug lludp status",
-                "debug lludp status",
-                "Return status of LLUDP packet processing.",
-                HandleStatusCommand);
-/*  disabled
-            MainConsole.Instance.Commands.AddCommand(
-                "Debug",
-                false,
-                "debug lludp toggle agentupdate",
-                "debug lludp toggle agentupdate",
-                "Toggle whether agentupdate packets are processed or simply discarded.",
-                HandleAgentUpdateCommand);
- */
-        }
-
-        private void HandlePacketCommand(string module, string[] args)
-        {
-            if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
-                return;
-
-            bool setAsDefaultLevel = false;
-            OptionSet optionSet = new OptionSet().Add("default", o => setAsDefaultLevel = o != null);
-            List<string> filteredArgs = optionSet.Parse(args);
-
-            string name = null;
-
-            if (filteredArgs.Count == 6)
-            {
-                if (!setAsDefaultLevel)
-                {
-                    name = string.Format("{0} {1}", filteredArgs[4], filteredArgs[5]);
-                }
-                else
-                {
-                    MainConsole.Instance.OutputFormat("ERROR: Cannot specify a user name when setting default logging level");
-                    return;
-                }
-            }
-
-            if (filteredArgs.Count > 3)
-            {
-                int newDebug;
-                if (int.TryParse(filteredArgs[3], out newDebug))
-                {
-                    if (setAsDefaultLevel)
-                    {
-                        DefaultClientPacketDebugLevel = newDebug;
-                        MainConsole.Instance.OutputFormat(
-                            "Debug packet debug for new clients set to {0} in {1}", DefaultClientPacketDebugLevel, m_scene.Name);
-                    }
-                    else
-                    {
-                        m_scene.ForEachScenePresence(sp =>
-                        {
-                            if (name == null || sp.Name == name)
-                            {
-                                MainConsole.Instance.OutputFormat(
-                                    "Packet debug for {0} ({1}) set to {2} in {3}",
-                                    sp.Name, sp.IsChildAgent ? "child" : "root", newDebug, m_scene.Name);
-
-                                sp.ControllingClient.DebugPacketLevel = newDebug;
-                            }
-                        });
-                    }
-                }
-                else
-                {
-                    MainConsole.Instance.Output("Usage: debug lludp packet [--default] 0..255 [<first-name> <last-name>]");
-                }
-            }
-        }
 
-        private void HandleStartCommand(string module, string[] args)
-        {
-            if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
-                return;
-
-            if (args.Length != 4)
-            {
-                MainConsole.Instance.Output("Usage: debug lludp start <in|out|all>");
-                return;
-            }
-
-            string subCommand = args[3];
-
-            if (subCommand == "in" || subCommand == "all")
-                StartInbound();
-
-            if (subCommand == "out" || subCommand == "all")
-                StartOutbound();
->>>>>>> avn/ubitvar
         }
 
         public bool HandlesRegion(Location x)
@@ -1126,36 +975,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             // If a Linden Lab 1.23.5 client receives an update packet after a kill packet for an object, it will 
             // continue to display the deleted object until relog.  Therefore, we need to always queue a kill object
             // packet so that it isn't sent before a queued update packet.
-<<<<<<< HEAD
-            bool forceQueue = (type == PacketType.KillObject);
 
-//            if (type == PacketType.ImprovedTerseObjectUpdate)
-//            {
-//                m_log.DebugFormat("Direct send ITOU to {0} in {1}", udpClient.AgentID, Scene.Name);
-//                SendPacketFinal(outgoingPacket);
-//                return false;
-//            }
-//            else
-//            {
-            if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, forceQueue))
-=======
             bool requestQueue = type == PacketType.KillObject;
             if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, requestQueue, highPriority))
->>>>>>> avn/ubitvar
             {
                 SendPacketFinal(outgoingPacket);
                 return true;
             }
-<<<<<<< HEAD
-            else
-            {
-                return false;
-            }
-//            }
-=======
 
             return false;
->>>>>>> avn/ubitvar
 
             #endregion Queue or Send
         }
@@ -1462,7 +1290,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
             // If there is already a client for this endpoint, don't process UseCircuitCode
             IClientAPI client = null;
-            if (!m_scene.TryGetClient(endPoint, out client) || !(client is LLClientView))
+            if (!Scene.TryGetClient(endPoint, out client) || !(client is LLClientView))
             {
                 // UseCircuitCode handling
                 if (packet.Type == PacketType.UseCircuitCode)
@@ -1473,12 +1301,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                         if (m_pendingCache.Contains(endPoint))
                             return;
 
-<<<<<<< HEAD
-                Util.FireAndForget(HandleUseCircuitCode, array, "LLUDPServer.HandleUseCircuitCode");
-=======
                         m_pendingCache.AddOrUpdate(endPoint, new Queue<UDPPacketBuffer>(), 60);
                     }
->>>>>>> avn/ubitvar
 
                     // We need to copy the endpoint so that it doesn't get changed when another thread reuses the
                     // buffer.
@@ -1507,14 +1331,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                     // Send ack straight away to let the viewer know that we got it.
                     SendAckImmediate(endPoint, packet.Header.Sequence);
 
-<<<<<<< HEAD
-                Util.FireAndForget(
-                    HandleCompleteMovementIntoRegion, array, "LLUDPServer.HandleCompleteMovementIntoRegion");
-=======
                     // We need to copy the endpoint so that it doesn't get changed when another thread reuses the
                     // buffer.
                     object[] array = new object[] { new IPEndPoint(endPoint.Address, endPoint.Port), packet };
->>>>>>> avn/ubitvar
 
                     Util.FireAndForget(HandleCompleteMovementIntoRegion, array);
 
@@ -1524,12 +1343,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
 
             // Determine which agent this packet came from
-<<<<<<< HEAD
-            IClientAPI client;
-            if (!Scene.TryGetClient(endPoint, out client) || !(client is LLClientView))
-=======
             if (client == null || !(client is LLClientView))
->>>>>>> avn/ubitvar
             {
                 //m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName);
 
@@ -1547,7 +1361,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
             if (!udpClient.IsConnected)
             {
-                m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet for a unConnected client in " + m_scene.RegionInfo.RegionName);
+                m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet for a unConnected client in " + Scene.RegionInfo.RegionName);
                 return;
             }
 
@@ -1652,28 +1466,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             LogPacketHeader(true, udpClient.CircuitCode, 0, packet.Type, (ushort)packet.Length);
             #endregion BinaryStats
 
-<<<<<<< HEAD
-            if (packet.Type == PacketType.AgentUpdate)
-            {
-                if (DiscardInboundAgentUpdates)
-                    return;
-
-                ((LLClientView)client).TotalAgentUpdates++;
 
-                AgentUpdatePacket agentUpdate = (AgentUpdatePacket)packet;
+//Ubit  AgentUpdate mess removed from here
 
-                LLClientView llClient = client as LLClientView;
-                if (agentUpdate.AgentData.SessionID != client.SessionId 
-                    || agentUpdate.AgentData.AgentID != client.AgentId
-                    || !(llClient == null || llClient.CheckAgentUpdateSignificance(agentUpdate.AgentData)) )
-                {
-                    PacketPool.Instance.ReturnPacket(packet);
-                    return;
-                }
-            }
-=======
-// AgentUpdate mess removed from here
->>>>>>> avn/ubitvar
 
             #region Ping Check Handling
 
@@ -1853,7 +1648,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 AuthenticateResponse sessionInfo;
                 if (IsClientAuthorized(uccp, out sessionInfo))
                 {
-                    AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
+                    AgentCircuitData aCircuit = Scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
 
                     // Begin the process of adding the client to the simulator
                     client
@@ -1868,7 +1663,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                     // an existing child agent, and there is no circuit data
                     if (client != null && aCircuit == null)
                     {
-                        m_scene.CloseAgent(client.AgentId, true);
+                        Scene.CloseAgent(client.AgentId, true);
                         return;
                     }
 
@@ -1908,14 +1703,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                     // We only want to send initial data to new clients, not ones which are being converted from child to root.
                     if (client != null)
                     {
-<<<<<<< HEAD
-                        AgentCircuitData aCircuit = Scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
-=======
->>>>>>> avn/ubitvar
                         bool tp = (aCircuit.teleportFlags > 0);
                         // Let's delay this for TP agents, otherwise the viewer doesn't know where to get resources from
-                        if (!tp && !client.SceneAgent.SentInitialDataToClient)
-                            client.SceneAgent.SendInitialDataToClient();
+                        if (!tp)
+                            client.SceneAgent.SendInitialDataToMe();
                     }
                 }
                 else
@@ -1923,17 +1714,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                     // Don't create clients for unauthorized requesters.
                     m_log.WarnFormat(
                         "[LLUDPSERVER]: Ignoring connection request for {0} to {1} with unknown circuit code {2} from IP {3}",
-<<<<<<< HEAD
+
                         uccp.CircuitCode.ID, Scene.RegionInfo.RegionName, uccp.CircuitCode.Code, endPoint);
-                }
-    
-=======
-                        uccp.CircuitCode.ID, m_scene.RegionInfo.RegionName, uccp.CircuitCode.Code, endPoint);
 
                     lock (m_pendingCache)
                         m_pendingCache.Remove(endPoint);
                 }    
->>>>>>> avn/ubitvar
+
                 //            m_log.DebugFormat(
     //                "[LLUDPSERVER]: Handling UseCircuitCode request from {0} took {1}ms", 
     //                buffer.RemoteEndPoint, (DateTime.Now - startTime).Milliseconds);
@@ -2127,24 +1914,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             {
                 if (!Scene.TryGetClient(agentID, out client))
                 {
-<<<<<<< HEAD
-                    LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, Throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
-=======
                     createNew = true;
                 }
                 else
                 {
                     if (client.SceneAgent == null)
                     {
-                        m_scene.CloseAgent(agentID, true);
+                        Scene.CloseAgent(agentID, true);
                         createNew = true;
                     }
                 }
 
                 if (createNew)
                 {
-                    LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, m_throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
->>>>>>> avn/ubitvar
+                    LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, Throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
+
     
                     client = new LLClientView(Scene, this, udpClient, sessionInfo, agentID, sessionID, circuitCode);
                     client.OnLogout += LogoutHandler;
@@ -2174,29 +1958,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             {    
                 ClientLogoutsDueToNoReceives++;
 
-<<<<<<< HEAD
-                m_log.WarnFormat(
-                    "[LLUDPSERVER]: No packets received from {0} agent of {1} for {2}ms in {3}.  Disconnecting.",
-                    client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, timeoutTicks, Scene.Name);
-=======
                 if (client.SceneAgent != null)
                 {
                     m_log.WarnFormat(
                         "[LLUDPSERVER]: No packets received from {0} agent of {1} for {2}ms in {3}.  Disconnecting.",
-                        client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, timeoutTicks, m_scene.Name);
->>>>>>> avn/ubitvar
+                        client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, timeoutTicks, Scene.Name);
     
                     if (!client.SceneAgent.IsChildAgent)
                          client.Kick("Simulator logged you out due to connection timeout.");
                 }
             }
 
-<<<<<<< HEAD
-            Scene.CloseAgent(client.AgentId, true);
-=======
-            if (!m_scene.CloseAgent(client.AgentId, true))
+            if (!Scene.CloseAgent(client.AgentId, true))
                 client.Close(true,true);
->>>>>>> avn/ubitvar
         }
 
         private void IncomingPacketHandler()
@@ -2209,7 +1983,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
             while (IsRunningInbound)
             {
-                m_scene.ThreadAlive(1);
+                Scene.ThreadAlive(1);
                 try
                 {
                     IncomingPacket incomingPacket = null;
@@ -2261,7 +2035,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 
             while (base.IsRunningOutbound)
             {
-                m_scene.ThreadAlive(2);
+                Scene.ThreadAlive(2);
                 try
                 {
                     m_packetSent = false;
@@ -2524,15 +2298,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 {
                     m_currentIncomingClient = null;
                 }
-<<<<<<< HEAD
-            }
-            else
-            {
-                m_log.DebugFormat(
-                    "[LLUDPSERVER]: Dropped incoming {0} for dead client {1} in {2}",
-                    packet.Type, client.Name, Scene.RegionInfo.RegionName);
-            }
-=======
 //            }
 //            else
 //            {
@@ -2540,7 +2305,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 //                    "[LLUDPSERVER]: Dropped incoming {0} for dead client {1} in {2}",
 //                    packet.Type, client.Name, m_scene.RegionInfo.RegionName);
 //            }
->>>>>>> avn/ubitvar
 
             IncomingPacketsProcessed++;
         }

+ 2 - 2
OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs

@@ -224,7 +224,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             ConsoleDisplayList cdl = new ConsoleDisplayList();
             cdl.AddRow("Adaptive throttles", m_udpServer.ThrottleRates.AdaptiveThrottlesEnabled);
 
-            long maxSceneDripRate = m_udpServer.Throttle.MaxDripRate;
+            long maxSceneDripRate = (long)m_udpServer.Throttle.MaxDripRate;
             cdl.AddRow(
                 "Max scene throttle", 
                 maxSceneDripRate != 0 ? string.Format("{0} kbps", maxSceneDripRate * 8 / 1000) : "unset");
@@ -505,7 +505,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             m_console.OutputFormat("Debug settings for {0}", m_udpServer.Scene.Name);
             ConsoleDisplayList cdl = new ConsoleDisplayList();
 
-            long maxSceneDripRate = m_udpServer.Throttle.MaxDripRate;
+            long maxSceneDripRate = (long)m_udpServer.Throttle.MaxDripRate;
             cdl.AddRow(
                 "max-scene-throttle", 
                 maxSceneDripRate != 0 ? string.Format("{0} kbps", maxSceneDripRate * 8 / 1000) : "unset");

+ 11 - 6
OpenSim/Region/ClientStack/Linden/UDP/Tests/ThrottleTests.cs

@@ -35,6 +35,7 @@ using OpenSim.Tests.Common;
 
 namespace OpenSim.Region.ClientStack.LindenUDP.Tests
 {
+    /*
     [TestFixture]
     public class ThrottleTests : OpenSimTestCase
     {
@@ -57,16 +58,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
         [Test]
         public void TestSetRequestDripRate()
         {
+
             TestHelpers.InMethod();
 
-            TokenBucket tb = new TokenBucket("tb", null, 5000, 0);
+            TokenBucket tb = new TokenBucket(null, 5000f,10000f);
             AssertRates(tb, 5000, 0, 5000, 0);
 
-            tb.RequestedDripRate = 4000;
+            tb.RequestedDripRate = 4000f;
             AssertRates(tb, 4000, 0, 4000, 0);
 
             tb.RequestedDripRate = 6000;
             AssertRates(tb, 6000, 0, 6000, 0);
+
         }
 
         [Test]
@@ -74,7 +77,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
         {
             TestHelpers.InMethod();
 
-            TokenBucket tb = new TokenBucket("tb", null, 5000, 10000);
+            TokenBucket tb = new TokenBucket(null, 5000,15000);
             AssertRates(tb, 5000, 0, 5000, 10000);
 
             tb.RequestedDripRate = 4000;
@@ -92,9 +95,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
         {
             TestHelpers.InMethod();
 
-            TokenBucket tbParent = new TokenBucket("tbParent", null, 0, 0);
-            TokenBucket tbChild1 = new TokenBucket("tbChild1", tbParent, 3000, 0);
-            TokenBucket tbChild2 = new TokenBucket("tbChild2", tbParent, 5000, 0);
+            TokenBucket tbParent = new TokenBucket("tbParent", null, 0);
+            TokenBucket tbChild1 = new TokenBucket("tbChild1", tbParent, 3000);
+            TokenBucket tbChild2 = new TokenBucket("tbChild2", tbParent, 5000);
 
             AssertRates(tbParent, 8000, 8000, 8000, 0);
             AssertRates(tbChild1, 3000, 0, 3000, 0);
@@ -113,6 +116,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
             AssertRates(tbParent, 6000, 8000, 6000, 0);
             AssertRates(tbChild1, 3000, 0, 6000 / 8 * 3, 0);
             AssertRates(tbChild2, 5000, 0, 6000 / 8 * 5, 0);
+
         }
 
         private void AssertRates(
@@ -424,4 +428,5 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
             udpClient.SetThrottles(throttles);
         }
     }
+     */
 }

+ 39 - 232
OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs

@@ -42,24 +42,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
     public class TokenBucket
     {
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-<<<<<<< HEAD
 
-        public string Identifier { get; private set; }
-
-        public int DebugLevel { get; set; }
-        
-        /// <summary>
-        /// Number of ticks (ms) per quantum, drip rate and max burst
-        /// are defined over this interval.
-        /// </summary>
-        protected const Int32 m_ticksPerQuantum = 1000;
-=======
         private static Int32 m_counter = 0;
         
 //        private Int32 m_identifier;      
   
         protected const float m_timeScale = 1e-3f;
->>>>>>> avn/ubitvar
 
         /// <summary>
         /// This is the number of m_minimumDripRate bytes 
@@ -72,11 +60,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                 
         /// <summary>
         /// </summary>
-<<<<<<< HEAD
-        protected const Int32 m_minimumDripRate = LLUDPServer.MTU;
-=======
         protected const float m_minimumDripRate = 1400;
->>>>>>> avn/ubitvar
         
         /// <summary>Time of the last drip, in system ticks</summary>
         protected Int32 m_lastDrip;
@@ -90,27 +74,31 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// <summary>
         /// Map of children buckets and their requested maximum burst rate
         /// </summary>
-<<<<<<< HEAD
-        protected Dictionary<TokenBucket,Int64> m_children = new Dictionary<TokenBucket,Int64>();
-=======
+
         protected Dictionary<TokenBucket, float> m_children = new Dictionary<TokenBucket, float>();
         
 #region Properties
->>>>>>> avn/ubitvar
 
         /// <summary>
         /// The parent bucket of this bucket, or null if this bucket has no
         /// parent. The parent bucket will limit the aggregate bandwidth of all
         /// of its children buckets
         /// </summary>
-        public TokenBucket Parent { get; protected set; }
-
+        protected TokenBucket m_parent;
+        public TokenBucket Parent
+        {
+            get { return m_parent; }
+            set { m_parent = value; }
+        }
         /// <summary>
         /// This is the maximum number
         /// of tokens that can accumulate in the bucket at any one time. This 
         /// also sets the total request for leaf nodes
         /// </summary>
         protected float m_burst;
+//not in use
+        public float MaxDripRate { get; set; }
+
         public float RequestedBurst
         {
             get { return m_burst; }
@@ -143,63 +131,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// Can never be above MaxDripRate.
         /// Tokens are added to the bucket at any time 
         /// <seealso cref="RemoveTokens"/> is called, at the granularity of
-<<<<<<< HEAD
-        /// the system tick interval (typically around 15-22ms)
-        /// FIXME: It is extremely confusing to be able to set a RequestedDripRate of 0 and then receive a positive
-        /// number on get if TotalDripRequest is set.  This also stops us being able to retrieve the fact that
-        /// RequestedDripRate is set to 0.  Really, this should always return m_dripRate and then we can get
-        /// (m_dripRate == 0 ? TotalDripRequest : m_dripRate) on some other properties.
-        /// </remarks>
-        public virtual Int64 RequestedDripRate
-        {
-            get { return (m_dripRate == 0 ? TotalDripRequest : m_dripRate); }
-            set 
-            {
-                if (value <= 0)
-                    m_dripRate = 0;
-                else if (MaxDripRate > 0 && value > MaxDripRate)
-                    m_dripRate = MaxDripRate;
-                else
-                    m_dripRate = value;
-
-                m_burstRate = (Int64)((double)m_dripRate * m_quantumsPerBurst);
-
-                if (Parent != null)
-                    Parent.RegisterRequest(this, m_dripRate);
-            }
-        }
-
-        /// <summary>
-        /// Gets the drip rate.
-        /// </summary>
-        /// <value>
-        /// DripRate can never be above max drip rate or below min drip rate.
-        /// If we are a child bucket then the drip rate return is modifed by the total load on the capacity of the
-        /// parent bucket.
-        /// </value>
-        public virtual Int64 DripRate
-        {
-            get 
-            {
-                double rate;
-
-                // FIXME: This doesn't properly work if we have a parent and children and a requested drip rate set
-                // on ourselves which is not equal to the child drip rates.
-                if (Parent == null)
-                {
-                    if (TotalDripRequest > 0)
-                        rate = Math.Min(RequestedDripRate, TotalDripRequest);
-                    else
-                        rate = RequestedDripRate;
-                }   
-                else
-                {
-                    rate = (double)RequestedDripRate * Parent.DripRateModifier();
-                }
-
-=======
         /// the system tick interval (typically around 15-22ms)</remarks>
         protected float m_dripRate;
+
         public virtual float RequestedDripRate
         {
             get { return (m_dripRate == 0 ? m_totalDripRequest : m_dripRate); }
@@ -212,7 +146,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             }
         }
 
-        public virtual float DripRate
+       public virtual float DripRate
         {
             get {
                 float rate = Math.Min(RequestedDripRate,TotalDripRequest);
@@ -220,28 +154,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
                     return rate;
 
                 rate *= m_parent.DripRateModifier();
->>>>>>> avn/ubitvar
                 if (rate < m_minimumDripRate)
                     rate = m_minimumDripRate;
-                else if (MaxDripRate > 0 && rate > MaxDripRate)
-                    rate = MaxDripRate;
 
                 return (float)rate;
             }
         }
-        protected Int64 m_dripRate;
-
-        // <summary>
-        // The maximum rate for flow control. Drip rate can never be greater than this.
-        // </summary>
-        public Int64 MaxDripRate { get; set; }
 
         /// <summary>
         /// The current total of the requested maximum burst rates of children buckets.
         /// </summary>
-<<<<<<< HEAD
-        public Int64 TotalDripRequest { get; protected set; }
-=======
         protected float m_totalDripRequest;
         public float TotalDripRequest 
             {
@@ -252,7 +174,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
 #endregion Properties
 
 #region Constructor
->>>>>>> avn/ubitvar
+
 
         /// <summary>
         /// Default constructor
@@ -260,36 +182,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// <param name="identifier">Identifier for this token bucket</param>
         /// <param name="parent">Parent bucket if this is a child bucket, or
         /// null if this is a root bucket</param>
-<<<<<<< HEAD
-        /// <param name="requestedDripRate">
-        /// Requested rate that the bucket fills, in bytes per
-        /// second. If zero, the bucket always remains full.
-        /// </param>
-        public TokenBucket(string identifier, TokenBucket parent, Int64 requestedDripRate, Int64 maxDripRate) 
-=======
         /// <param name="maxBurst">Maximum size of the bucket in bytes, or
         /// zero if this bucket has no maximum capacity</param>
         /// <param name="dripRate">Rate that the bucket fills, in bytes per
         /// second. If zero, the bucket always remains full</param>
         public TokenBucket(TokenBucket parent, float dripRate, float MaxBurst) 
->>>>>>> avn/ubitvar
         {
-            Identifier = identifier;
+            m_counter++;
 
             Parent = parent;
-<<<<<<< HEAD
-            RequestedDripRate = requestedDripRate;
-            MaxDripRate = maxDripRate;
-            m_lastDrip = Util.EnvironmentTickCount();
-=======
             RequestedDripRate = dripRate;
             RequestedBurst = MaxBurst;
             // TotalDripRequest = dripRate; // this will be overwritten when a child node registers
             // MaxBurst = (Int64)((double)dripRate * m_quantumsPerBurst);
             m_lastDrip = Util.EnvironmentTickCount() + 100000;
->>>>>>> avn/ubitvar
         }
 
+#endregion Constructor
+
         /// <summary>
         /// Compute a modifier for the MaxBurst rate. This is 1.0, meaning
         /// no modification if the requested bandwidth is less than the
@@ -299,20 +209,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         /// </summary>
         protected float DripRateModifier()
         {
-<<<<<<< HEAD
-            Int64 driprate = DripRate;
-            double modifier = driprate >= TotalDripRequest ? 1.0 : (double)driprate / (double)TotalDripRequest;
-
-//            if (DebugLevel > 0)
-//                m_log.DebugFormat(
-//                    "[TOKEN BUCKET]: Returning drip modifier {0}/{1} = {2} from {3}", 
-//                    driprate, TotalDripRequest, modifier, Identifier);
-
-            return modifier;
-=======
             float driprate = DripRate;
             return driprate >= TotalDripRequest ? 1.0f : driprate / TotalDripRequest;
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -335,29 +233,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             {
                 m_children[child] = request;
 
-<<<<<<< HEAD
-                TotalDripRequest = 0;
-                foreach (KeyValuePair<TokenBucket, Int64> cref in m_children)
-                    TotalDripRequest += cref.Value;
-=======
                 m_totalDripRequest = 0;
                 foreach (KeyValuePair<TokenBucket, float> cref in m_children)
                     m_totalDripRequest += cref.Value;
->>>>>>> avn/ubitvar
             }
             
             // Pass the new values up to the parent
-            if (Parent != null)
-            {
-                Int64 effectiveDripRate;
-
-                if (RequestedDripRate > 0)
-                    effectiveDripRate = Math.Min(RequestedDripRate, TotalDripRequest);
-                else
-                    effectiveDripRate = TotalDripRequest;
-
-                Parent.RegisterRequest(this, effectiveDripRate);
-            }
+            if (m_parent != null)
+                m_parent.RegisterRequest(this, Math.Min(RequestedDripRate, TotalDripRequest));
         }
 
         /// <summary>
@@ -370,15 +253,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             {
                 m_children.Remove(child);
 
-<<<<<<< HEAD
-                TotalDripRequest = 0;
-                foreach (KeyValuePair<TokenBucket, Int64> cref in m_children)
-                    TotalDripRequest += cref.Value;
-=======
                 m_totalDripRequest = 0;
                 foreach (KeyValuePair<TokenBucket, float> cref in m_children)
                     m_totalDripRequest += cref.Value;
->>>>>>> avn/ubitvar
             }
 
             // Pass the new values up to the parent
@@ -427,7 +304,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
             // with no drip rate...
             if (DripRate == 0)
             {
-                m_log.WarnFormat("[TOKENBUCKET] something odd is happening and drip rate is 0 for {0}", Identifier);
+                m_log.WarnFormat("[TOKENBUCKET] something odd is happening and drip rate is 0 for {0}", m_counter);
                 return;
             }
             
@@ -453,17 +330,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         public bool AdaptiveEnabled { get; set; }
 
         /// <summary>
-<<<<<<< HEAD
-        /// Target drip rate for this bucket.
-        /// </summary>
-        /// <remarks>Usually set by the client.  If adaptive is enabled then throttles will increase until we reach this.</remarks>
-        public Int64 TargetDripRate 
-        { 
-            get { return m_targetDripRate; }
-            set 
-            {
-                m_targetDripRate = Math.Max(value, m_minimumFlow);
-=======
         /// The minimum rate for flow control. Minimum drip rate is one
         /// packet per second. 
         /// </summary>
@@ -479,13 +345,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         public float MaxDripRate
         {
             get { return (m_maxDripRate == 0 ? m_totalDripRequest : m_maxDripRate); }
-            set 
+            set
             {
                 m_maxDripRate = (value == 0 ? m_totalDripRequest : Math.Max(value, m_minimumFlow));
->>>>>>> avn/ubitvar
             }
         }
-        protected Int64 m_targetDripRate;
+
+        private bool m_enabled = false;
 
         // <summary>
         // Adjust drip rate in response to network conditions. 
@@ -493,109 +359,50 @@ namespace OpenSim.Region.ClientStack.LindenUDP
         public virtual float AdjustedDripRate
         {
             get { return m_dripRate; }
-<<<<<<< HEAD
-            set 
+            set
             {
-                m_dripRate = OpenSim.Framework.Util.Clamp<Int64>(value, m_minimumFlow, TargetDripRate);
-                m_burstRate = (Int64)((double)m_dripRate * m_quantumsPerBurst);
-
-                if (Parent != null)
-                    Parent.RegisterRequest(this, m_dripRate);
-=======
-            set {
-                m_dripRate = OpenSim.Framework.Util.Clamp<float>(value,m_minimumFlow,MaxDripRate);
+                m_dripRate = OpenSim.Framework.Util.Clamp<float>(value, m_minimumFlow, MaxDripRate);
 
                 if (m_parent != null)
-                    m_parent.RegisterRequest(this,m_dripRate);
->>>>>>> avn/ubitvar
+                    m_parent.RegisterRequest(this, m_dripRate);
             }
         }
                 
-        /// <summary>
-        /// The minimum rate for adaptive flow control. 
-        /// </summary>
-        protected Int64 m_minimumFlow = 32000;
-
-<<<<<<< HEAD
-        /// <summary>
-        /// Constructor for the AdaptiveTokenBucket class
-        /// <param name="identifier">Unique identifier for the client</param>
-        /// <param name="parent">Parent bucket in the hierarchy</param>
-        /// <param name="requestedDripRate"></param>
-        /// <param name="maxDripRate">The ceiling rate for adaptation</param>
-        /// <param name="minDripRate">The floor rate for adaptation</param>
-        /// </summary>
-        public AdaptiveTokenBucket(string identifier, TokenBucket parent, Int64 requestedDripRate, Int64 maxDripRate, Int64 minDripRate, bool enabled) 
-            : base(identifier, parent, requestedDripRate, maxDripRate)
-        {
-            AdaptiveEnabled = enabled;
-
-            if (AdaptiveEnabled)
-            {
-//                m_log.DebugFormat("[TOKENBUCKET]: Adaptive throttle enabled");
-                m_minimumFlow = minDripRate;
-                TargetDripRate = m_minimumFlow;
-                AdjustedDripRate = m_minimumFlow;
-            }
-=======
+   
         // <summary>
         // 
         // </summary>
-        public AdaptiveTokenBucket(TokenBucket parent, float maxDripRate,float maxBurst, bool enabled)
-            : base(parent, maxDripRate,maxBurst)
+        public AdaptiveTokenBucket(TokenBucket parent, float maxDripRate, float maxBurst, bool enabled)
+            : base(parent, maxDripRate, maxBurst)
         {
             m_enabled = enabled;
-           
+
             MaxDripRate = maxDripRate;
 
             if (enabled)
                 AdjustedDripRate = m_maxDripRate * .5f;
             else
                 AdjustedDripRate = m_maxDripRate;
->>>>>>> avn/ubitvar
         }
                 
         /// <summary>
         /// Reliable packets sent to the client for which we never received an ack adjust the drip rate down.
         /// <param name="packets">Number of packets that expired without successful delivery</param>
         /// </summary>
-        public void ExpirePackets(Int32 packets)
-        {
-            if (AdaptiveEnabled)
-            {
-                if (DebugLevel > 0)
-                    m_log.WarnFormat(
-                        "[ADAPTIVEBUCKET] drop {0} by {1} expired packets for {2}", 
-                        AdjustedDripRate, packets, Identifier);
-
-                // AdjustedDripRate = (Int64) (AdjustedDripRate / Math.Pow(2,packets));
-
-                // Compute the fallback solely on the rate allocated beyond the minimum, this
-                // should smooth out the fallback to the minimum rate
-                AdjustedDripRate = m_minimumFlow + (Int64) ((AdjustedDripRate - m_minimumFlow) / Math.Pow(2, packets));
-            }
-        }
-
-        /// <summary>
-        /// Reliable packets acked by the client adjust the drip rate up.
-        /// <param name="packets">Number of packets successfully acknowledged</param>
-        /// </summary>
-        public void AcknowledgePackets(Int32 packets)
+        public void ExpirePackets(Int32 count)
         {
-            if (AdaptiveEnabled)
-                AdjustedDripRate = AdjustedDripRate + packets * LLUDPServer.MTU;
+            // m_log.WarnFormat("[ADAPTIVEBUCKET] drop {0} by {1} expired packets",AdjustedDripRate,count);
+            if (m_enabled)
+                AdjustedDripRate = (Int64)(AdjustedDripRate / Math.Pow(2, count));
         }
 
-        /// <summary>
-        /// Adjust the minimum flow level for the adaptive throttle, this will drop adjusted
-        /// throttles back to the minimum levels
-        /// <param>minDripRate--the new minimum flow</param>
-        /// </summary>
-        public void ResetMinimumAdaptiveFlow(Int64 minDripRate)
+        // <summary>
+        // 
+        // </summary>
+        public void AcknowledgePackets(Int32 count)
         {
-            m_minimumFlow = minDripRate;
-            TargetDripRate = m_minimumFlow;
-            AdjustedDripRate = m_minimumFlow;
+            if (m_enabled)
+                AdjustedDripRate = AdjustedDripRate + count;
         }
     }
 }

+ 0 - 5
OpenSim/Region/ClientStack/RegionApplicationBase.cs

@@ -141,11 +141,6 @@ namespace OpenSim.Region.ClientStack
             PhysicsPluginManager physicsPluginManager;
             physicsPluginManager = new PhysicsPluginManager();
             physicsPluginManager.LoadPluginsFromAssemblies("Physics");
-<<<<<<< HEAD
-            
-=======
-
->>>>>>> avn/ubitvar
             return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config, osSceneIdentifier, regionExtent);
         }
     }

+ 1 - 3
OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs

@@ -455,8 +455,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
             m_transactions.RemoveXferUploader(m_transactionID);
         }
 
-<<<<<<< HEAD
-=======
+
         private void ValidateAssets()
         {
             if (m_asset.Type == (sbyte)CustomAssetType.AnimationSet)
@@ -599,6 +598,5 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
 
             return result;
         }
->>>>>>> avn/ubitvar
     }
 }

+ 0 - 28
OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs

@@ -406,25 +406,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
 
             Dictionary<SceneObjectGroup, string> scriptStates = new Dictionary<SceneObjectGroup, string>();
 
-<<<<<<< HEAD
-            foreach (SceneObjectGroup so in attachments)
-            {
-                // Scripts MUST be snapshotted before the object is
-                // removed from the scene because doing otherwise will
-                // clobber the run flag
-                // This must be done outside the sp.AttachmentSyncLock so that there is no risk of a deadlock from
-                // scripts performing attachment operations at the same time.  Getting object states stops the scripts.
-                scriptStates[so] = PrepareScriptInstanceForSave(so, false);
-
-//                m_log.DebugFormat(
-//                    "[ATTACHMENTS MODULE]: For object {0} for {1} in {2} got saved state {3}", 
-//                    so.Name, sp.Name, m_scene.Name, scriptStates[so]);
-            }
 
-            lock (sp.AttachmentsSyncLock)
-=======
             if (sp.PresenceType != PresenceType.Npc)
->>>>>>> avn/ubitvar
             {
                 foreach (SceneObjectGroup so in attachments)
                 {
@@ -477,18 +460,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
             if (!Enabled)
                 return false;
 
-<<<<<<< HEAD
-            group.DetachFromBackup();
-
-            bool success = AttachObjectInternal(sp, group, attachmentPt, silent, addToInventory, false, append);
-
-            if (!success)
-                group.AttachToBackup();
-
-            return success;
-=======
             return AttachObjectInternal(sp, group, attachmentPt, silent, useAttachData, addToInventory, false, append);
->>>>>>> avn/ubitvar
         }
 
         /// <summary>

+ 2 - 15
OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs

@@ -229,7 +229,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
         private void SendAppearance(ScenePresence sp)
         {
             // Send the appearance to everyone in the scene
-            sp.SendAppearanceToAllOtherClients();
+            sp.SendAppearanceToAllOtherAgents();
 
             // Send animations back to the avatar as well
             sp.Animator.SendAnimPack();
@@ -460,7 +460,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
                 {
                     m_log.Debug("[UpdateBakedCache] uploading to bakedModule cache");
 
-                    m_BakedTextureModule.Store(sp.UUID);
+                    m_BakedTextureModule.Store(sp.UUID, wearableCache);
                 }
             }
 
@@ -529,12 +529,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
                                 );
                     }
                 }
-<<<<<<< HEAD
-                    
-//                m_log.DebugFormat(
-//                    "[AVFACTORY]: Looking for texture {0}, id {1} for {2} {3}",
-//                    face.TextureID, idx, client.Name, client.AgentId);
-=======
 */
                 bool wearableCacheValid = false;
                 if (wearableCache == null)
@@ -577,15 +571,9 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
                     if (wearableCacheValid)
                         m_log.Debug("[ValidateBakedCache] have valid local cache");
                 }
->>>>>>> avn/ubitvar
 
                 bool checkExternal = false;
 
-<<<<<<< HEAD
-                if (m_scene.AssetService.Get(face.TextureID.ToString()) == null)
-                    return false;
-            }
-=======
                 if (!wearableCacheValid)
                 {
                     // only use external bake module on login condition check                  
@@ -658,7 +646,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
                         }
                     }
                 }
->>>>>>> avn/ubitvar
 
                 sp.Appearance.WearableCacheItems = wearableCache;
 

+ 0 - 11
OpenSim/Region/CoreModules/Avatar/AvatarFactory/Tests/AvatarFactoryModuleTests.cs

@@ -132,7 +132,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
             for (byte i = 0; i < visualParams.Length; i++)
                 visualParams[i] = i;
 
-<<<<<<< HEAD
             Primitive.TextureEntry bakedTextureEntry = new Primitive.TextureEntry(TestHelpers.ParseTail(0x10));
             uint eyesFaceIndex = (uint)AppearanceManager.BakeTypeToAgentTextureIndex(BakeType.Eyes);
             Primitive.TextureEntryFace eyesFace = bakedTextureEntry.CreateFace(eyesFaceIndex);
@@ -145,12 +144,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
             afm.SetAppearance(sp, bakedTextureEntry, visualParams, null);
     
             Assert.That(rebakeRequestsReceived, Is.EqualTo(0));
-=======
-            afm.SetAppearance(sp, new Primitive.TextureEntry(TestHelpers.ParseTail(0x10)), visualParams, new WearableCacheItem[0]);
-
-            // TODO: Check baked texture
-            Assert.AreEqual(visualParams, sp.Appearance.VisualParams);
->>>>>>> avn/ubitvar
         }
 
         [Test]
@@ -188,11 +181,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
             Primitive.TextureEntryFace eyesFace = bakedTextureEntry.CreateFace(eyesFaceIndex);
             eyesFace.TextureID = eyesTextureId;
 
-<<<<<<< HEAD
-            afm.SetAppearance(sp, bakedTextureEntry, visualParams, null);
-=======
             afm.SetAppearance(sp, bakedTextureEntry, visualParams, new WearableCacheItem[0]);
->>>>>>> avn/ubitvar
             afm.SaveBakedTextures(userId);
 //            Dictionary<BakeType, Primitive.TextureEntryFace> bakedTextures = afm.GetBakedTextureFaces(userId);
 

+ 8 - 0
OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs

@@ -151,6 +151,14 @@ namespace OpenSim.Region.CoreModules.Avatar.BakedTextures
             }
         }
 
+        public void Store(UUID agentId)
+        {
+        }
+        public void UpdateMeshAvatar(UUID agentId)
+        {
+        }
+
+
         public void Store(UUID agentId, WearableCacheItem[] data)
         {
             if (m_URL == String.Empty)

+ 0 - 25
OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs

@@ -214,13 +214,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
             UUID destination = c.Destination;
             Vector3 fromPos = c.Position;
             Vector3 regionPos = new Vector3(scene.RegionInfo.WorldLocX, scene.RegionInfo.WorldLocY, 0);
-<<<<<<< HEAD
-=======
 
             bool checkParcelHide = false;
             UUID sourceParcelID = UUID.Zero;
             Vector3 hidePos = fromPos;
->>>>>>> avn/ubitvar
 
             if (c.Channel == DEBUG_CHANNEL) c.Type = ChatTypeEnum.DebugChannel;
 
@@ -377,27 +374,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
             // m_log.DebugFormat("[CHAT] Broadcast: fromID {0} fromName {1}, cType {2}, sType {3}", fromID, fromName, cType, sourceType);
             HashSet<UUID> receiverIDs = new HashSet<UUID>();
             
-<<<<<<< HEAD
-            ((Scene)c.Scene).ForEachRootClient(
-                delegate(IClientAPI client)
-                {   
-                    // don't forward SayOwner chat from objects to
-                    // non-owner agents
-                    if ((c.Type == ChatTypeEnum.Owner) &&
-                        (null != c.SenderObject) &&
-                        (((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId))
-                        return;
-
-                    client.SendChatMessage(
-                        c.Message, (byte)cType, CenterOfRegion, fromName, fromID, ownerID,
-                        (byte)sourceType, (byte)ChatAudibleLevel.Fully);
-
-                    receiverIDs.Add(client.AgentId);
-                });
-            
-            (c.Scene as Scene).EventManager.TriggerOnChatToClients(
-                fromID, receiverIDs, c.Message, cType, CenterOfRegion, fromName, sourceType, ChatAudibleLevel.Fully);
-=======
             if (c.Scene != null)
             {
                 ((Scene)c.Scene).ForEachRootClient
@@ -419,7 +395,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
                 (c.Scene as Scene).EventManager.TriggerOnChatToClients(
                     fromID, receiverIDs, c.Message, cType, CenterOfRegion, fromName, sourceType, ChatAudibleLevel.Fully);
              }
->>>>>>> avn/ubitvar
         }
 
         /// <summary>

+ 0 - 7
OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs

@@ -183,15 +183,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
             try
             {
                 ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
-<<<<<<< HEAD
-
-                if (obj == null)
-                    return;
-
-=======
                 if (obj == null)
                     return;
->>>>>>> avn/ubitvar
                 if ((obj.LandData.Flags & (uint)ParcelFlags.AllowDamage) != 0
                     || avatar.Scene.RegionInfo.RegionSettings.AllowDamage)
                 {

+ 92 - 68
OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs

@@ -188,7 +188,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
             SendGridInstantMessageViaXMLRPC(im, result);
         }
 
-        public void HandleUndeliverableMessage(GridInstantMessage im, MessageResultNotification result)
+        public virtual void HandleUndeliverableMessage(GridInstantMessage im, MessageResultNotification result)
         {
             UndeliveredMessage handlerUndeliveredMessage = OnUndeliveredMessage;
 
@@ -445,14 +445,11 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
             return resp;
         }
 
-<<<<<<< HEAD
+
         /// <summary>
         /// delegate for sending a grid instant message asynchronously
         /// </summary>
-        public delegate void GridInstantMessageDelegate(GridInstantMessage im, MessageResultNotification result);
-=======
         private delegate void GridInstantMessageDelegate(GridInstantMessage im, MessageResultNotification result);
->>>>>>> avn/ubitvar
 
         private class GIM {
             public GridInstantMessage im;
@@ -479,31 +476,22 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
             }
         }
 
-<<<<<<< HEAD
-            d.BeginInvoke(im, result, GridInstantMessageCompleted, d);
-=======
+
         private void GridInstantMessageCompleted(IAsyncResult iar)
         {
             GridInstantMessageDelegate d = (GridInstantMessageDelegate)iar.AsyncState;
             d.EndInvoke(iar);
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
         /// Internal SendGridInstantMessage over XMLRPC method.
         /// </summary>
-<<<<<<< HEAD
-        /// <remarks>
-        /// This is called from within a dedicated thread.
-        /// </remarks>
-        private void SendGridInstantMessageViaXMLRPCAsync(GridInstantMessage im, MessageResultNotification result)
-=======
+
         /// <param name="prevRegionHandle">
         /// Pass in 0 the first time this method is called.  It will be called recursively with the last 
         /// regionhandle tried
         /// </param>
         private void SendGridInstantMessageViaXMLRPCAsyncMain(GridInstantMessage im, MessageResultNotification result)
->>>>>>> avn/ubitvar
         {
             GIM gim;
             do {
@@ -525,87 +513,124 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
                 }
             } while (gim != null);
         }
+
         private void SendGridInstantMessageViaXMLRPCAsync(GridInstantMessage im, MessageResultNotification result, UUID prevRegionID)
         {
 
             UUID toAgentID = new UUID(im.toAgentID);
+            PresenceInfo upd = null;
             UUID regionID;
-            bool needToLookupAgent;
+            bool lookupAgent = false;
 
             lock (m_UserRegionMap)
-                needToLookupAgent = !m_UserRegionMap.TryGetValue(toAgentID, out regionID);
-
-            while (true)
             {
-                if (needToLookupAgent)
+                if (m_UserRegionMap.ContainsKey(toAgentID))
                 {
-                    PresenceInfo[] presences = PresenceService.GetAgents(new string[] { toAgentID.ToString() }); 
+                    upd = new PresenceInfo();
+                    upd.RegionID = m_UserRegionMap[toAgentID];
+
+                    // We need to compare the current regionhandle with the previous region handle
+                    // or the recursive loop will never end because it will never try to lookup the agent again
+                    if (prevRegionID == upd.RegionID)
+                    {
+                        lookupAgent = true;
+                    }
+                }
+                else
+                {
+                    lookupAgent = true;
+                }
+            }
 
-                    UUID foundRegionID = UUID.Zero;
 
-                    if (presences != null)
+            // Are we needing to look-up an agent?
+            if (lookupAgent)
+            {
+                // Non-cached user agent lookup.
+                PresenceInfo[] presences = PresenceService.GetAgents(new string[] { toAgentID.ToString() });
+                if (presences != null && presences.Length > 0)
+                {
+                    foreach (PresenceInfo p in presences)
                     {
-                        foreach (PresenceInfo p in presences)
+                        if (p.RegionID != UUID.Zero)
                         {
-                            if (p.RegionID != UUID.Zero)
-                            {
-                                foundRegionID = p.RegionID;
-                                break;
-                            }
+                            upd = p;
+                            break;
                         }
                     }
-
-                    // If not found or the found region is the same as the last lookup, then message is undeliverable
-                    if (foundRegionID == UUID.Zero || foundRegionID == regionID)
-                        break;
-                    else
-                        regionID = foundRegionID;
                 }
 
-                GridRegion reginfo = m_Scenes[0].GridService.GetRegionByUUID(m_Scenes[0].RegionInfo.ScopeID, regionID);
-                if (reginfo == null)
+                if (upd != null)
                 {
-                    m_log.WarnFormat("[GRID INSTANT MESSAGE]: Unable to find region {0}", regionID);
-                    break;
+                    // check if we've tried this before..
+                    // This is one way to end the recursive loop
+                    //
+                    if (upd.RegionID == prevRegionID)
+                    {
+                        // m_log.Error("[GRID INSTANT MESSAGE]: Unable to deliver an instant message");
+                        HandleUndeliverableMessage(im, result);
+                        return;
+                    }
                 }
+                else
+                {
+                    // m_log.Error("[GRID INSTANT MESSAGE]: Unable to deliver an instant message");
+                    HandleUndeliverableMessage(im, result);
+                    return;
+                }
+            }
 
-<<<<<<< HEAD
-                // Try to send the message to the agent via the retrieved region.
-                Hashtable msgdata = ConvertGridInstantMessageToXMLRPC(im);
-                msgdata["region_handle"] = 0;
-                bool imresult = doIMSending(reginfo, msgdata);
-
-                // If the message delivery was successful, then cache the entry.
-                if (imresult)
-=======
             if (upd != null)
             {
                 GridRegion reginfo = m_Scenes[0].GridService.GetRegionByUUID(UUID.Zero,
                     upd.RegionID);
                 if (reginfo != null)
->>>>>>> avn/ubitvar
                 {
-                    lock (m_UserRegionMap)
+                    Hashtable msgdata = ConvertGridInstantMessageToXMLRPC(im);
+                    // Not actually used anymore, left in for compatibility
+                    // Remove at next interface change
+                    //
+                    msgdata["region_handle"] = 0;
+                    bool imresult = doIMSending(reginfo, msgdata);
+                    if (imresult)
+                    {
+                        // IM delivery successful, so store the Agent's location in our local cache.
+                        lock (m_UserRegionMap)
+                        {
+                            if (m_UserRegionMap.ContainsKey(toAgentID))
+                            {
+                                m_UserRegionMap[toAgentID] = upd.RegionID;
+                            }
+                            else
+                            {
+                                m_UserRegionMap.Add(toAgentID, upd.RegionID);
+                            }
+                        }
+                        result(true);
+                    }
+                    else
                     {
-                        m_UserRegionMap[toAgentID] = regionID;
+                        // try again, but lookup user this time.
+                        // Warning, this must call the Async version
+                        // of this method or we'll be making thousands of threads
+                        // The version within the spawned thread is SendGridInstantMessageViaXMLRPCAsync
+                        // The version that spawns the thread is SendGridInstantMessageViaXMLRPC
+
+                        // This is recursive!!!!!
+                        SendGridInstantMessageViaXMLRPCAsync(im, result,
+                                upd.RegionID);
                     }
-                    result(true);
-                    return;
                 }
-
-                // If we reach this point in the first iteration of the while, then we may have unsuccessfully tried
-                // to use a locally cached region ID.  All subsequent attempts need to lookup agent details from
-                // the presence service.
-                needToLookupAgent = true;
+                else
+                {
+                    m_log.WarnFormat("[GRID INSTANT MESSAGE]: Unable to find region {0}", upd.RegionID);
+                    HandleUndeliverableMessage(im, result);
+                }
+            }
+            else
+            {
+                HandleUndeliverableMessage(im, result);
             }
-
-            // If we reached this point then the message was not deliverable.  Remove the bad cache entry and 
-            // signal the delivery failure.
-            lock (m_UserRegionMap)
-                m_UserRegionMap.Remove(toAgentID);
-
-            // m_log.Error("[GRID INSTANT MESSAGE]: Unable to deliver an instant message");
-            HandleUndeliverableMessage(im, result);
         }
 
         /// <summary>
@@ -709,6 +734,5 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
                 gim["message_key"] = m_MessageKey;
             return gim;
         }
-
     }
 }

+ 0 - 5
OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs

@@ -238,7 +238,6 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
                 return;
             }
 
-<<<<<<< HEAD
             if (!m_ForwardOfflineGroupMessages)
             {
                 if (im.dialog == (byte)InstantMessageDialog.GroupNotice ||
@@ -246,9 +245,6 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
                     return;
             }
 
-            bool success = SynchronousRestObjectRequester.MakeRequest<GridInstantMessage, bool>(
-                    "POST", m_RestURL+"/SaveMessage/", im, 10000);
-=======
             Scene scene = FindScene(new UUID(im.fromAgentID));
             if (scene == null)
                 scene = m_SceneList[0];
@@ -256,7 +252,6 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
             SendReply reply = SynchronousRestObjectRequester.MakeRequest<GridInstantMessage, SendReply>(
                     "POST", m_RestURL+"/SaveMessage/?scope=" +
                     scene.RegionInfo.ScopeID.ToString(), im);
->>>>>>> avn/ubitvar
 
             if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent)
             {

+ 1 - 9
OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs

@@ -180,13 +180,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
                         "[INVENTORY TRANSFER]: Inserting original folder {0} into agent {1}'s inventory",
                         folderID, new UUID(im.toAgentID));
                     
-<<<<<<< HEAD
                     InventoryFolderBase folderCopy
-                        = scene.GiveInventoryFolder(client, receipientID, client.AgentId, folderID, UUID.Zero);
-=======
-                    InventoryFolderBase folderCopy 
-                        = scene.GiveInventoryFolder(recipientID, client.AgentId, folderID, UUID.Zero);
->>>>>>> avn/ubitvar
+                        = scene.GiveInventoryFolder(client, recipientID, client.AgentId, folderID, UUID.Zero);
                     
                     if (folderCopy == null)
                     {
@@ -475,7 +470,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
         /// <param name="im"></param>
         private void OnGridInstantMessage(GridInstantMessage im)
         {
-<<<<<<< HEAD
             // Check if it's a type of message that we should handle
             if (!((im.dialog == (byte) InstantMessageDialog.InventoryOffered)
                 || (im.dialog == (byte) InstantMessageDialog.TaskInventoryOffered)
@@ -488,8 +482,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
                 "[INVENTORY TRANSFER]: {0} IM type received from grid. From={1} ({2}), To={3}",
                 (InstantMessageDialog)im.dialog, im.fromAgentID, im.fromAgentName, im.toAgentID);
 
-=======
->>>>>>> avn/ubitvar
             // Check if this is ours to handle
             //
             Scene scene = FindClientScene(new UUID(im.toAgentID));

+ 1 - 6
OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs

@@ -869,7 +869,7 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
         }
         #endregion Notes
 
-<<<<<<< HEAD
+
         #region User Preferences
         /// <summary>
         /// Updates the user preferences.
@@ -933,8 +933,6 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
         }
         #endregion User Preferences
 
-=======
->>>>>>> avn/ubitvar
         #region Avatar Properties
         /// <summary>
         /// Update the avatars interests .
@@ -1401,8 +1399,6 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
             return null;
         }
         #endregion Util
-<<<<<<< HEAD
-=======
 
         #region Web Util
         /// <summary>
@@ -1580,6 +1576,5 @@ namespace OpenSim.Region.CoreModules.Avatar.UserProfiles
             return true;
         }
         #endregion Web Util
->>>>>>> avn/ubitvar
     }
 }

+ 8 - 440
OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs

@@ -154,16 +154,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             // Add this agent in this region as a banned person
             public void Add(ulong pRegionHandle, UUID pAgentID)
             {
-<<<<<<< HEAD
-                if (!m_bannedRegions.TryGetValue(pAgentID, out m_idCache))
-                {
-                    m_idCache = new ExpiringCache<ulong, DateTime>();
-                    m_bannedRegions.Add(pAgentID, m_idCache, TimeSpan.FromSeconds(45));
-                }
-                m_idCache.Add(pRegionHandle, DateTime.Now + TimeSpan.FromSeconds(15), TimeSpan.FromSeconds(15));
-=======
                 this.Add(pRegionHandle, pAgentID, 45, 15);
             }
+
             public void Add(ulong pRegionHandle, UUID pAgentID, double newTime, double extendTime)
             {
                 if (!m_bannedRegions.TryGetValue(pAgentID, out m_idCache))
@@ -172,8 +165,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                     m_bannedRegions.Add(pAgentID, m_idCache, TimeSpan.FromSeconds(newTime));
                 }
                 m_idCache.Add(pRegionHandle, DateTime.Now + TimeSpan.FromSeconds(extendTime), TimeSpan.FromSeconds(extendTime));
->>>>>>> avn/ubitvar
             }
+
             // Remove the agent from the region's banned list
             public void Remove(ulong pRegionHandle, UUID pAgentID)
             {
@@ -183,6 +176,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 }
             }
         }
+
         private BannedRegionCache m_bannedRegionCache = new BannedRegionCache();
 
         private IEventQueue m_eqModule;
@@ -222,7 +216,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
         {
             string transferVersionName = "SIMULATION";
             float maxTransferVersion = 0.3f;
-<<<<<<< HEAD
 
             IConfig hypergridConfig = source.Configs["Hypergrid"];
             if (hypergridConfig != null)
@@ -235,8 +228,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 if (m_GatekeeperURI != string.Empty && !m_GatekeeperURI.EndsWith("/"))
                     m_GatekeeperURI += '/';
             }
-=======
->>>>>>> avn/ubitvar
 
             IConfig transferConfig = source.Configs["EntityTransfer"];
             if (transferConfig != null)
@@ -515,11 +506,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
             // TODO: Check other Scene HeightField
             posZLimit = (float)sp.Scene.Heightmap[(int)position.X, (int)position.Y];
-<<<<<<< HEAD
-=======
 
             posZLimit += localHalfAVHeight + 0.1f;
->>>>>>> avn/ubitvar
 
             if ((position.Z < posZLimit) && !(Single.IsInfinity(posZLimit) || Single.IsNaN(posZLimit)))
             {
@@ -622,15 +610,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 Util.RegionHandleToRegionLoc(regionHandle, out regX, out regY);
 
                 MapBlockData block = new MapBlockData();
-<<<<<<< HEAD
-                block.X = (ushort)regX;
-                block.Y = (ushort)regY;
-                block.Access = (byte)SimAccess.Down;
-=======
                 block.X = (ushort)(regX);
                 block.Y = (ushort)(regY);
                 block.Access = (byte)SimAccess.Down; // == not there
->>>>>>> avn/ubitvar
 
                 List<MapBlockData> blocks = new List<MapBlockData>();
                 blocks.Add(block);
@@ -765,13 +747,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 return;
             }
 
-<<<<<<< HEAD
-            uint newRegionX, newRegionY, oldRegionX, oldRegionY;
-            Util.RegionHandleToRegionLoc(reg.RegionHandle, out newRegionX, out newRegionY);
-            Util.RegionHandleToRegionLoc(sp.Scene.RegionInfo.RegionHandle, out oldRegionX, out oldRegionY);
-
-=======
->>>>>>> avn/ubitvar
             ulong destinationHandle = finalDestination.RegionHandle;
 
             // Let's do DNS resolution only once in this process, please!
@@ -794,11 +769,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             string version;
             string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion);
             if (!Scene.SimulationService.QueryAccess(
-<<<<<<< HEAD
                 finalDestination, sp.ControllingClient.AgentId, homeURI, true, position, myversion, sp.Scene.GetFormatsOffered(), out version, out reason))
-=======
-                 finalDestination, sp.ControllingClient.AgentId, homeURI, true, position, myversion, out version, out reason))
->>>>>>> avn/ubitvar
             {
                 sp.ControllingClient.SendTeleportFailed(reason);
 
@@ -860,12 +831,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 agentCircuit.Id0 = currentAgentCircuit.Id0;
             }
 
-<<<<<<< HEAD
-            // if (NeedsNewAgent(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY))
-            float dist = (float)Math.Max(sp.Scene.DefaultDrawDistance,
-                (float)Math.Max(sp.Scene.RegionInfo.RegionSizeX, sp.Scene.RegionInfo.RegionSizeY));
-            if (NeedsNewAgent(dist, oldRegionX, newRegionX, oldRegionY, newRegionY))
-=======
             IClientIPEndpoint ipepClient;
        
             uint newRegionX, newRegionY, oldRegionX, oldRegionY;
@@ -880,7 +845,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 oldSizeX, oldSizeY, newSizeX, newSizeY);
 
             if (OutSideViewRange)
->>>>>>> avn/ubitvar
             {
                 m_log.DebugFormat(
                     "[ENTITY TRANSFER MODULE]: Determined that region {0} at {1},{2} needs new child agent for agent {3} from {4}",
@@ -911,11 +875,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 float.TryParse(versionComponents[1], out versionNumber);
 
             if (versionNumber >= 0.2f && MaxOutgoingTransferVersion >= versionNumber)
-<<<<<<< HEAD
-                TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason);
-=======
                 TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, OutSideViewRange , version, out reason);
->>>>>>> avn/ubitvar
             else
                 TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, OutSideViewRange, version, out reason);           
         }
@@ -973,21 +933,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.Transferring);
 
             // OK, it got this agent. Let's close some child agents
-<<<<<<< HEAD
-            sp.CloseChildAgents(newRegionX, newRegionY);
-
-            IClientIPEndpoint ipepClient;
-            string capsPath = String.Empty;
-            float dist = (float)Math.Max(sp.Scene.DefaultDrawDistance,
-                (float)Math.Max(sp.Scene.RegionInfo.RegionSizeX, sp.Scene.RegionInfo.RegionSizeY));
-            if (NeedsNewAgent(dist, oldRegionX, newRegionX, oldRegionY, newRegionY))
-            {
-                m_log.DebugFormat(
-                    "[ENTITY TRANSFER MODULE]: Determined that region {0} at {1},{2} needs new child agent for incoming agent {3} from {4}",
-                    finalDestination.RegionName, newRegionX, newRegionY, sp.Name, Scene.Name);
-=======
->>>>>>> avn/ubitvar
-
 
             if (OutSideViewRange)
             {
@@ -1157,11 +1102,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
             // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
 
-<<<<<<< HEAD
-            if (NeedsClosing(sp.Scene.DefaultDrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg))
-=======
             if (OutSideViewRange)
->>>>>>> avn/ubitvar
             {
                 if (!sp.Scene.IncomingPreCloseClient(sp))
                     return;
@@ -1226,35 +1167,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             // Past this point we have to attempt clean up if the teleport fails, so update transfer state.
             m_entityTransferStateMachine.UpdateInTransit(sp.UUID, AgentTransferState.Transferring);
 
-<<<<<<< HEAD
-            IClientIPEndpoint ipepClient;
-            string capsPath = String.Empty;
-            float dist = (float)Math.Max(sp.Scene.DefaultDrawDistance, 
-                (float)Math.Max(sp.Scene.RegionInfo.RegionSizeX, sp.Scene.RegionInfo.RegionSizeY));
-            if (NeedsNewAgent(dist, oldRegionX, newRegionX, oldRegionY, newRegionY))
-            {
-                m_log.DebugFormat(
-                    "[ENTITY TRANSFER MODULE]: Determined that region {0} at {1},{2} needs new child agent for agent {3} from {4}",
-                    finalDestination.RegionName, newRegionX, newRegionY, sp.Name, Scene.Name);
-
-                //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent...");
-                #region IP Translation for NAT
-                // Uses ipepClient above
-                if (sp.ClientView.TryGet(out ipepClient))
-                {
-                    endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address);
-                }
-                #endregion
-                capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath);
-            }
-            else
-            {
-                agentCircuit.CapsPath = sp.Scene.CapsModule.GetChildSeed(sp.UUID, reg.RegionHandle);
-                capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath);
-            }
-
-=======
->>>>>>> avn/ubitvar
             // We need to set this here to avoid an unlikely race condition when teleporting to a neighbour simulator,
             // where that neighbour simulator could otherwise request a child agent create on the source which then 
             // closes our existing agent which is still signalled as root.
@@ -1333,11 +1245,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             sp.MakeChildAgent(destinationHandle);
 
             // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
-<<<<<<< HEAD
-            if (NeedsClosing(sp.Scene.DefaultDrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY, reg))
-=======
             if (OutSideViewRange)
->>>>>>> avn/ubitvar
             {
                 if (!sp.Scene.IncomingPreCloseClient(sp))
                     return;
@@ -1465,12 +1373,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
         // This returns 'true' if the new region already has a child agent for our
         //    incoming agent. The implication is that, if 'false', we have to create  the
         //    child and then teleport into the region.
-<<<<<<< HEAD
-        protected virtual bool NeedsNewAgent(float drawdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY)
-=======
         protected virtual bool NeedsNewAgent(float drawdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY,
             int oldsizeX, int oldsizeY, int newsizeX, int newsizeY)
->>>>>>> avn/ubitvar
         {
             if (m_regionCombinerModule != null && m_regionCombinerModule.IsRootForMegaregion(Scene.RegionInfo.RegionID))
             {
@@ -1487,9 +1391,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             return Util.IsOutsideView(drawdist, oldRegionX, newRegionX, oldRegionY, newRegionY,
                     oldsizeX, oldsizeY, newsizeX, newsizeY);
         }
-<<<<<<< HEAD
-
-=======
 /*
         protected virtual bool NeedsClosing(float drawdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY,
             uint oldsizeX, uint oldsizeY, uint newsizeX, uint newsizeY, GridRegion reg)
@@ -1499,7 +1400,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 oldsizeX, oldsizeY, newsizeX, newsizeY);
         }
 */
->>>>>>> avn/ubitvar
         #endregion
 
         #region Landmark Teleport
@@ -1580,82 +1480,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
         #region Agent Crossings
 
-<<<<<<< HEAD
-        // Given a position relative to the current region (which has previously been tested to
-        //    see that it is actually outside the current region), find the new region that the
-        //    point is actually in.
-        // Returns the coordinates and information of the new region or 'null' of it doesn't exist.
-        public GridRegion GetDestination(Scene scene, UUID agentID, Vector3 pos,
-                                            out string version, out Vector3 newpos, out string failureReason)
-=======
         public bool checkAgentAccessToRegion(ScenePresence agent, GridRegion destiny, Vector3 position, out string version, out string reason)
->>>>>>> avn/ubitvar
         {
             reason = String.Empty;
             version = String.Empty;
-<<<<<<< HEAD
-            newpos = pos;
-            failureReason = string.Empty;
-            string homeURI = scene.GetAgentHomeURI(agentID);
-
-//            m_log.DebugFormat(
-//                "[ENTITY TRANSFER MODULE]: Crossing agent {0} at pos {1} in {2}", agent.Name, pos, scene.Name);
-
-            // Compute world location of the object's position
-            double presenceWorldX = (double)scene.RegionInfo.WorldLocX + pos.X;
-            double presenceWorldY = (double)scene.RegionInfo.WorldLocY + pos.Y;
-
-            // Call the grid service to lookup the region containing the new position.
-            GridRegion neighbourRegion = GetRegionContainingWorldLocation(scene.GridService, scene.RegionInfo.ScopeID,
-                                                        presenceWorldX, presenceWorldY, 
-                                                        Math.Max(scene.RegionInfo.RegionSizeX, scene.RegionInfo.RegionSizeY));
-
-            if (neighbourRegion != null)
-            {
-                // Compute the entity's position relative to the new region
-                newpos = new Vector3((float)(presenceWorldX - (double)neighbourRegion.RegionLocX),
-                                      (float)(presenceWorldY - (double)neighbourRegion.RegionLocY),
-                                      pos.Z);
-
-                if (m_bannedRegionCache.IfBanned(neighbourRegion.RegionHandle, agentID))
-                {
-                    failureReason = "Cannot region cross into banned parcel";
-                    neighbourRegion = null;
-                }
-                else
-                {
-                    // If not banned, make sure this agent is not in the list.
-                    m_bannedRegionCache.Remove(neighbourRegion.RegionHandle, agentID);
-                }
-
-                // Check to see if we have access to the target region.
-                string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion);
-                if (neighbourRegion != null
-                    && !scene.SimulationService.QueryAccess(neighbourRegion, agentID, homeURI, false, newpos, myversion, scene.GetFormatsOffered(), out version, out failureReason))
-                {
-                    // remember banned
-                    m_bannedRegionCache.Add(neighbourRegion.RegionHandle, agentID);
-                    neighbourRegion = null;
-                }
-            }
-            else
-            {
-                // The destination region just doesn't exist
-                failureReason = "Cannot cross into non-existent region";
-            }
-
-            if (neighbourRegion == null)
-                m_log.DebugFormat("{0} GetDestination: region not found. Old region name={1} at <{2},{3}> of size <{4},{5}>. Old pos={6}",
-                    LogHeader, scene.RegionInfo.RegionName,
-                    scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY,
-                    scene.RegionInfo.RegionSizeX, scene.RegionInfo.RegionSizeY,
-                    pos);
-            else
-                m_log.DebugFormat("{0} GetDestination: new region={1} at <{2},{3}> of size <{4},{5}>, newpos=<{6},{7}>",
-                    LogHeader, neighbourRegion.RegionName,
-                    neighbourRegion.RegionLocX, neighbourRegion.RegionLocY, neighbourRegion.RegionSizeX, neighbourRegion.RegionSizeY,
-                    newpos.X, newpos.Y);
-=======
 
             UUID agentID = agent.UUID;
             ulong destinyHandle = destiny.RegionHandle;
@@ -1672,7 +1500,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
 
             if (!ascene.SimulationService.QueryAccess(destiny, agentID, homeURI, false, position,
-                    myversion, out version, out reason))
+                    myversion, agent.Scene.GetFormatsOffered(), out version, out reason))
             {
                 m_bannedRegionCache.Add(destinyHandle, agentID, 30.0, 30.0);
                 return false;
@@ -1735,7 +1563,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion);
                 string homeURI = scene.GetAgentHomeURI(agentID);
                 if (neighbourRegion != null
-                    && !scene.SimulationService.QueryAccess(neighbourRegion, agentID, homeURI, false, newpos, myversion, out version, out failureReason))
+                    && !scene.SimulationService.QueryAccess(
+                        neighbourRegion, agentID, homeURI, false, newpos, myversion,
+                        new List<UUID>(), out version, out failureReason))
                 {
                     // remember banned
                     m_bannedRegionCache.Add(neighbourRegion.RegionHandle, agentID);
@@ -1747,7 +1577,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 // The destination region just doesn't exist
                 failureReason = "Cannot cross into non-existent region";
             }
->>>>>>> avn/ubitvar
 
             if (neighbourRegion == null)
                 m_log.DebugFormat("{0} GetDestination: region not found. Old region name={1} at <{2},{3}> of size <{4},{5}>. Old pos={6}",
@@ -1766,8 +1595,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
         public bool Cross(ScenePresence agent, bool isFlying)
         {
-<<<<<<< HEAD
-=======
             agent.IsInTransit = true;
             CrossAsyncDelegate d = CrossAsync;
             d.BeginInvoke(agent, isFlying, CrossCompleted, d);
@@ -1793,19 +1620,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
         {
             uint x;
             uint y;
->>>>>>> avn/ubitvar
             Vector3 newpos;
             string version;
             string failureReason;
 
-<<<<<<< HEAD
-            GridRegion neighbourRegion = GetDestination(agent.Scene, agent.UUID, agent.AbsolutePosition,
-                                                            out version, out newpos, out failureReason);
-            if (neighbourRegion == null)
-            {
-                agent.ControllingClient.SendAlertMessage(failureReason);
-                return false;
-=======
             Vector3 pos = agent.AbsolutePosition + agent.Velocity;
 
             GridRegion neighbourRegion = GetDestination(agent.Scene, agent.UUID, pos,
@@ -1815,23 +1633,15 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 if (failureReason != String.Empty)
                     agent.ControllingClient.SendAlertMessage(failureReason);
                 return agent;
->>>>>>> avn/ubitvar
             }
 
 //            agent.IsInTransit = true;
 
-<<<<<<< HEAD
-            Scene.EventManager.TriggerCrossAgentToNewRegion(agent, isFlying, neighbourRegion);
-
-            return true;
-=======
             CrossAgentToNewRegionAsync(agent, newpos, neighbourRegion, isFlying, version);
             agent.IsInTransit = false;
             return agent;
->>>>>>> avn/ubitvar
         }
 
-
         public delegate void InformClientToInitiateTeleportToLocationDelegate(ScenePresence agent, uint regionX, uint regionY,
                                                             Vector3 position,
                                                             Scene initiatingScene);
@@ -1958,10 +1768,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             {
                 AgentData cAgent = new AgentData(); 
                 agent.CopyTo(cAgent);
-<<<<<<< HEAD
-                cAgent.Position = pos;
-
-=======
 
 //                agent.Appearance.WearableCacheItems = null;
 
@@ -1969,7 +1775,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
                 cAgent.ChildrenCapSeeds = agent.KnownRegions;
 
->>>>>>> avn/ubitvar
                 if (isFlying)
                     cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
 
@@ -2048,25 +1853,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                                             capsPath);
             }
 
-<<<<<<< HEAD
-            // SUCCESS!
-            m_entityTransferStateMachine.UpdateInTransit(agent.UUID, AgentTransferState.ReceivedAtDestination);
-
-            // Unlike a teleport, here we do not wait for the destination region to confirm the receipt.
-            m_entityTransferStateMachine.UpdateInTransit(agent.UUID, AgentTransferState.CleaningUp);
-
-            agent.MakeChildAgent();
-
-            // FIXME: Possibly this should occur lower down after other commands to close other agents,
-            // but not sure yet what the side effects would be.
-            m_entityTransferStateMachine.ResetFromTransit(agent.UUID);
-
-            // now we have a child agent in this region. Request all interesting data about other (root) agents
-            agent.SendOtherAgentsAvatarDataToClient();
-            agent.SendOtherAgentsAppearanceToClient();
-
-=======
->>>>>>> avn/ubitvar
             // Backwards compatibility. Best effort
             if (version == "Unknown" || version == string.Empty)
             {
@@ -2075,12 +1861,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 CrossAttachmentsIntoNewRegion(neighbourRegion, agent, true);
             }
 
-<<<<<<< HEAD
-            // Next, let's close the child agent connections that are too far away.
-            uint neighbourx;
-            uint neighboury;
-            Util.RegionHandleToRegionLoc(neighbourRegion.RegionHandle, out neighbourx, out neighboury);
-=======
             // SUCCESS!
             m_entityTransferStateMachine.UpdateInTransit(agent.UUID, AgentTransferState.ReceivedAtDestination);
 
@@ -2096,7 +1876,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             // FIXME: Possibly this should occur lower down after other commands to close other agents,
             // but not sure yet what the side effects would be.
             m_entityTransferStateMachine.ResetFromTransit(agent.UUID);
->>>>>>> avn/ubitvar
 
             agent.CloseChildAgents(neighbourRegion.RegionHandle, neighbourRegion.RegionSizeX, neighbourRegion.RegionSizeY);
 
@@ -2177,24 +1956,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
             seeds.Add(regionhandler, agent.CapsPath);
 
-<<<<<<< HEAD
-            sp.AddNeighbourRegion(region.RegionHandle, agent.CapsPath);
-            //foreach (ulong h in agent.ChildrenCapSeeds.Keys)
-            //    m_log.DebugFormat("[XXX] --> {0}", h);
-            //m_log.DebugFormat("[XXX] Adding {0}", region.RegionHandle);
-            if (agent.ChildrenCapSeeds.ContainsKey(region.RegionHandle))
-            {
-                m_log.WarnFormat(
-                    "[ENTITY TRANSFER]: Overwriting caps seed {0} with {1} for region {2} (handle {3}) for {4} in {5}", 
-                    agent.ChildrenCapSeeds[region.RegionHandle], agent.CapsPath, 
-                    region.RegionName, region.RegionHandle, sp.Name, Scene.Name);
-            }
 
-            agent.ChildrenCapSeeds[region.RegionHandle] = agent.CapsPath;
-=======
 //            agent.ChildrenCapSeeds = new Dictionary<ulong, string>(seeds);
             agent.ChildrenCapSeeds = null;
->>>>>>> avn/ubitvar
 
             if (sp.Scene.CapsModule != null)
             {
@@ -2278,11 +2042,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
 
             if (m_regionInfo != null)
             {
-<<<<<<< HEAD
-                neighbours = GetNeighbours(sp, m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
-=======
                 neighbours = GetNeighbors(sp, m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
->>>>>>> avn/ubitvar
             }
             else
             {
@@ -2531,127 +2291,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
         #endregion // NotFoundLocationCache class
         private NotFoundLocationCache m_notFoundLocationCache = new NotFoundLocationCache();
 
-<<<<<<< HEAD
-        // Computes the difference between two region bases.
-        // Returns a vector of world coordinates (meters) from base of first region to the second.
-        // The first region is the home region of the passed scene presence.
-        Vector3 CalculateOffset(ScenePresence sp, GridRegion neighbour)
-        {
-            /*
-            int rRegionX = (int)sp.Scene.RegionInfo.LegacyRegionLocX;
-            int rRegionY = (int)sp.Scene.RegionInfo.LegacyRegionLocY;
-            int tRegionX = neighbour.RegionLocX / (int)Constants.RegionSize;
-            int tRegionY = neighbour.RegionLocY / (int)Constants.RegionSize;
-            int shiftx = (rRegionX - tRegionX) * (int)Constants.RegionSize;
-            int shifty = (rRegionY - tRegionY) * (int)Constants.RegionSize;
-            return new Vector3(shiftx, shifty, 0f);
-             */
-            return new Vector3( sp.Scene.RegionInfo.WorldLocX - neighbour.RegionLocX,
-                                sp.Scene.RegionInfo.WorldLocY - neighbour.RegionLocY,
-                                0f);
-        }
-
-        public GridRegion GetRegionContainingWorldLocation(IGridService pGridService, UUID pScopeID, double px, double py)
-        {
-            // Since we don't know how big the regions could be, we have to search a very large area
-            //    to find possible regions.
-            return GetRegionContainingWorldLocation(pGridService, pScopeID, px, py, Constants.MaximumRegionSize);
-        }
-
-        #region NotFoundLocationCache class
-        // A collection of not found locations to make future lookups 'not found' lookups quick.
-        // A simple expiring cache that keeps not found locations for some number of seconds.
-        // A 'not found' location is presumed to be anywhere in the minimum sized region that
-        //    contains that point. A conservitive estimate.
-        private class NotFoundLocationCache
-        {
-            private struct NotFoundLocation
-            {
-                public double minX, maxX, minY, maxY;
-                public DateTime expireTime;
-            }
-            private List<NotFoundLocation> m_notFoundLocations = new List<NotFoundLocation>();
-            public NotFoundLocationCache()
-            {
-            }
-            // Add an area to the list of 'not found' places. The area is the snapped region
-            //    area around the added point.
-            public void Add(double pX, double pY)
-            {
-                lock (m_notFoundLocations)
-                {
-                    if (!LockedContains(pX, pY))
-                    {
-                        NotFoundLocation nfl = new NotFoundLocation();
-                        // A not found location is not found for at least a whole region sized area
-                        nfl.minX = pX - (pX % (double)Constants.RegionSize);
-                        nfl.minY = pY - (pY % (double)Constants.RegionSize);
-                        nfl.maxX = nfl.minX + (double)Constants.RegionSize;
-                        nfl.maxY = nfl.minY + (double)Constants.RegionSize;
-                        nfl.expireTime = DateTime.Now + TimeSpan.FromSeconds(30);
-                        m_notFoundLocations.Add(nfl);
-                    }
-                }
-                
-            }
-            // Test to see of this point is in any of the 'not found' areas.
-            // Return 'true' if the point is found inside the 'not found' areas.
-            public bool Contains(double pX, double pY)
-            {
-                bool ret = false;
-                lock (m_notFoundLocations)
-                    ret = LockedContains(pX, pY);
-                return ret;
-            }
-            private bool LockedContains(double pX, double pY)
-            {
-                bool ret = false;
-                this.DoExpiration();
-                foreach (NotFoundLocation nfl in m_notFoundLocations)
-                {
-                    if (pX >= nfl.minX && pX < nfl.maxX && pY >= nfl.minY && pY < nfl.maxY)
-                    {
-                        ret = true;
-                        break;
-                    }
-                }
-                return ret;
-            }
-            private void DoExpiration()
-            {
-                List<NotFoundLocation> m_toRemove = null;
-                DateTime now = DateTime.Now;
-                foreach (NotFoundLocation nfl in m_notFoundLocations)
-                {
-                    if (nfl.expireTime < now)
-                    {
-                        if (m_toRemove == null)
-                            m_toRemove = new List<NotFoundLocation>();
-                        m_toRemove.Add(nfl);
-                    }
-                }
-                if (m_toRemove != null)
-                {
-                    foreach (NotFoundLocation nfl in m_toRemove)
-                        m_notFoundLocations.Remove(nfl);
-                    m_toRemove.Clear();
-                }
-            }
-        }
-        #endregion // NotFoundLocationCache class
-        private NotFoundLocationCache m_notFoundLocationCache = new NotFoundLocationCache();
-
-        // Given a world position (fractional meter coordinate), get the GridRegion info for
-        //   the region containing that point.
-        // Someday this should be a method on GridService.
-        // 'pSizeHint' is the size of the source region but since the destination point can be anywhere
-        //     the size of the target region is unknown thus the search area might have to be very large.
-        // Return 'null' if no such region exists.
-        public GridRegion GetRegionContainingWorldLocation(IGridService pGridService, UUID pScopeID,
-                            double px, double py, uint pSizeHint)
-        {
-            m_log.DebugFormat("{0} GetRegionContainingWorldLocation: query, loc=<{1},{2}>", LogHeader, px, py);
-=======
 // needed for current OSG or old grid code
  
         public GridRegion GetRegionContainingWorldLocation(IGridService pGridService, UUID pScopeID, double px, double py)
@@ -2671,7 +2310,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                             double px, double py, uint pSizeHint)
         {
             m_log.DebugFormat("{0} GetRegionContainingWorldLocation: call, XY=<{1},{2}>", LogHeader, px, py);
->>>>>>> avn/ubitvar
             GridRegion ret = null;
             const double fudge = 2.0;
 
@@ -2765,13 +2403,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                                                   IPEndPoint endPoint, bool newAgent)
         {
 
-<<<<<<< HEAD
-            Scene scene = sp.Scene;
-            
-            m_log.DebugFormat(
-                "[ENTITY TRANSFER MODULE]: Informing {0} {1} about neighbour {2} {3} at ({4},{5})",
-                sp.Name, sp.UUID, reg.RegionName, endPoint, reg.RegionCoordX, reg.RegionCoordY);
-=======
             if (newAgent)
             {
                 Scene scene = sp.Scene;
@@ -2779,17 +2410,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 m_log.DebugFormat(
                     "[ENTITY TRANSFER MODULE]: Informing {0} {1} about neighbour {2} {3} at ({4},{5})",
                     sp.Name, sp.UUID, reg.RegionName, endPoint, reg.RegionCoordX, reg.RegionCoordY);
->>>>>>> avn/ubitvar
 
                 string capsPath = reg.ServerURI + CapsUtil.GetCapsSeedPath(a.CapsPath);
 
                 string reason = String.Empty;
 
-<<<<<<< HEAD
-            bool regionAccepted = scene.SimulationService.CreateAgent(null, reg, a, (uint)TeleportFlags.Default, out reason);
-=======
-                bool regionAccepted = scene.SimulationService.CreateAgent(reg, a, (uint)TeleportFlags.Default, out reason);
->>>>>>> avn/ubitvar
+                bool regionAccepted = scene.SimulationService.CreateAgent(reg, reg, a, (uint)TeleportFlags.Default, out reason);
 
                 if (regionAccepted)
                 {
@@ -2848,10 +2474,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 extent.Y = (float)Util.WorldToRegionLoc((uint)megaRegionSize.Y);
             }
 
-<<<<<<< HEAD
-=======
-
->>>>>>> avn/ubitvar
             swCorner.X = Scene.RegionInfo.RegionLocX - 1;
             swCorner.Y = Scene.RegionInfo.RegionLocY - 1;
             neCorner.X = Scene.RegionInfo.RegionLocX + extent.X;
@@ -2865,11 +2487,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
         /// <param name="pRegionLocX"></param>
         /// <param name="pRegionLocY"></param>
         /// <returns></returns>        
-<<<<<<< HEAD
-        protected List<GridRegion> GetNeighbours(ScenePresence avatar, uint pRegionLocX, uint pRegionLocY)
-=======
         protected List<GridRegion> GetNeighbors(ScenePresence avatar, uint pRegionLocX, uint pRegionLocY)
->>>>>>> avn/ubitvar
         {
             Scene pScene = avatar.Scene;
             RegionInfo m_regionInfo = pScene.RegionInfo;
@@ -2880,22 +2498,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             // view to include everything in the megaregion
             if (m_regionCombinerModule == null || !m_regionCombinerModule.IsRootForMegaregion(Scene.RegionInfo.RegionID))
             {
-<<<<<<< HEAD
-                // The area to check is as big as the current region.
-                // We presume all adjacent regions are the same size as this region.
-                uint dd = Math.Max((uint)avatar.Scene.DefaultDrawDistance, 
-                                Math.Max(Scene.RegionInfo.RegionSizeX, Scene.RegionInfo.RegionSizeY));
-
-                uint startX = Util.RegionToWorldLoc(pRegionLocX) - dd + Constants.RegionSize/2;
-                uint startY = Util.RegionToWorldLoc(pRegionLocY) - dd + Constants.RegionSize/2;
-
-                uint endX = Util.RegionToWorldLoc(pRegionLocX) + dd + Constants.RegionSize/2;
-                uint endY = Util.RegionToWorldLoc(pRegionLocY) + dd + Constants.RegionSize/2;
-
-                neighbours 
-                    = avatar.Scene.GridService.GetRegionRange(
-                        m_regionInfo.ScopeID, (int)startX, (int)endX, (int)startY, (int)endY);
-=======
                 uint dd = (uint)avatar.DrawDistance;
 
                 // until avatar movement updates client connections, we need to seend at least this current region imediate Neighbors
@@ -2919,8 +2521,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                 neighbours
                     = avatar.Scene.GridService.GetRegionRange(
                         m_regionInfo.ScopeID, (int)startX, (int)endX, (int)startY, (int)endY);
-
->>>>>>> avn/ubitvar
             }
             else
             {
@@ -2934,24 +2534,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
                         (int)Util.RegionToWorldLoc((uint)swCorner.Y), (int)Util.RegionToWorldLoc((uint)neCorner.Y));
             }
 
-<<<<<<< HEAD
-//            neighbours.ForEach(
-//                n => 
-//                    m_log.DebugFormat(
-//                        "[ENTITY TRANSFER MODULE]: Region flags for {0} as seen by {1} are {2}", 
-//                        n.RegionName, Scene.Name, n.RegionFlags != null ? n.RegionFlags.ToString() : "not present"));
-
-            // The r.RegionFlags == null check only needs to be made for simulators before 2015-01-14 (pre 0.8.1).
-            neighbours.RemoveAll(
-                r => 
-                    r.RegionID == m_regionInfo.RegionID 
-                        || (r.RegionFlags != null && (r.RegionFlags & OpenSim.Framework.RegionFlags.RegionOnline) == 0));
-
-=======
             // The r.RegionFlags == null check only needs to be made for simulators before 2015-01-14 (pre 0.8.1).
             neighbours.RemoveAll( r => r.RegionID == m_regionInfo.RegionID );
 
->>>>>>> avn/ubitvar
             return neighbours;
         }
         #endregion
@@ -3036,23 +2621,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
             if (scene == null)
                 return;
 
-<<<<<<< HEAD
-            if (grp.RootPart.DIE_AT_EDGE)
-            {
-                // We remove the object here
-                try
-                {
-                    scene.DeleteSceneObject(grp, false);
-                }
-                catch (Exception)
-                {
-                    m_log.Warn("[DATABASE]: exception when trying to remove the prim that crossed the border.");
-                }
-                return;
-            }
-
-=======
->>>>>>> avn/ubitvar
             // Remember the old group position in case the region lookup fails so position can be restored.
             Vector3 oldGroupPosition = grp.RootPart.GroupPosition;
 

+ 0 - 7
OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs

@@ -434,14 +434,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
         //    return base.UpdateAgent(reg, finalDestination, agentData, sp);
         //}
 
-<<<<<<< HEAD
-        public override void TriggerTeleportHome(UUID id, IClientAPI client)     
-        {                                                                       
-            TeleportHome(id, client);                                           
-        }                                                                       
                           
-=======
->>>>>>> avn/ubitvar
         public override bool TeleportHome(UUID id, IClientAPI client)
         {
             m_log.DebugFormat(

+ 4 - 33
OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs

@@ -207,17 +207,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
             {
                 byte[] data = null;
 
-<<<<<<< HEAD
-                    AssetBase asset = m_Scene.CreateAsset(name, description, assetType, data, remoteClient.AgentId);
-                    m_Scene.AssetService.Store(asset);
-                    m_Scene.CreateNewInventoryItem(
-                        remoteClient, remoteClient.AgentId.ToString(), string.Empty, folderID,
-                        name, description, 0, callbackID, asset.FullID, asset.Type, invType, nextOwnerMask, creationDate);
-                }
-                else
-=======
                 if (invType == (sbyte)InventoryType.Landmark && presence != null)
->>>>>>> avn/ubitvar
                 {
                     string suffix = string.Empty, prefix = string.Empty;
                     string strdata = GenerateLandmark(presence, out prefix, out suffix);
@@ -229,8 +219,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
                 AssetBase asset = m_Scene.CreateAsset(name, description, assetType, data, remoteClient.AgentId);
                 m_Scene.AssetService.Store(asset);
                 m_Scene.CreateNewInventoryItem(
-                    remoteClient, remoteClient.AgentId.ToString(), string.Empty, folderID,
-                    name, description, 0, callbackID, asset, invType, nextOwnerMask, creationDate,transactionID);               
+                        remoteClient, remoteClient.AgentId.ToString(), string.Empty, folderID,
+                        name, description, 0, callbackID, asset.FullID, asset.Type, invType, nextOwnerMask, creationDate);              
             }
             else
             {
@@ -420,26 +410,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
             {
                 if (objectGroup.RootPart.KeyframeMotion != null)
                 {
-<<<<<<< HEAD
-                    objectGroup.RootPart.KeyframeMotion.Pause();
-                    group2Keyframe.Add(objectGroup, objectGroup.RootPart.KeyframeMotion);
-                    objectGroup.RootPart.KeyframeMotion = null;
-                }
-
-//                Vector3 inventoryStoredPosition = new Vector3
-//                            (((objectGroup.AbsolutePosition.X > (int)Constants.RegionSize)
-//                                  ? 250
-//                                  : objectGroup.AbsolutePosition.X)
-//                             ,
-//                             (objectGroup.AbsolutePosition.Y > (int)Constants.RegionSize)
-//                                 ? 250
-//                                 : objectGroup.AbsolutePosition.Y,
-//                             objectGroup.AbsolutePosition.Z);
-//
-//                originalPositions[objectGroup.UUID] = objectGroup.AbsolutePosition;
-//
-//                objectGroup.AbsolutePosition = inventoryStoredPosition;
-=======
                     objectGroup.RootPart.KeyframeMotion.Suspend();
                 }
                 objectGroup.RootPart.SetForce(Vector3.Zero);
@@ -480,7 +450,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
 
                 objectGroup.AbsolutePosition = inventoryStoredPosition;
                 objectGroup.RootPart.RotationOffset = inventoryStoredRotation;
->>>>>>> avn/ubitvar
 
                 // Make sure all bits but the ones we want are clear
                 // on take.
@@ -626,6 +595,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
             IClientAPI remoteClient)
         {
             uint effectivePerms = (uint)(PermissionMask.Copy | PermissionMask.Transfer | PermissionMask.Modify | PermissionMask.Move | PermissionMask.Export) | 7;
+            uint allObjectsNextOwnerPerms = 0x7fffffff;
+
             // For the porposes of inventory, an object is modify if the prims
             // are modify. This allows renaming an object that contains no
             // mod items.

+ 1 - 3
OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs

@@ -336,8 +336,6 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             }
         }
 
-<<<<<<< HEAD
-=======
         /// <summary>
         /// 
         /// </summary>
@@ -433,7 +431,7 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
             }
         }
 
->>>>>>> avn/ubitvar
+
         #region IUserManagement
 
         public UUID GetUserIdByName(string name)

+ 3 - 11
OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs

@@ -358,9 +358,8 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
             m_proxyurl = config.Configs["Startup"].GetString("HttpProxy");
             m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions");
 
-<<<<<<< HEAD
+
             m_outboundUrlFilter = new OutboundUrlFilter("Script HTTP request module", config);
-=======
             int maxThreads = 15;
 
             IConfig httpConfig = config.Configs["HttpRequestModule"];
@@ -368,7 +367,6 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
             {
                 maxThreads = httpConfig.GetInt("MaxPoolThreads", maxThreads);
             }
->>>>>>> avn/ubitvar
 
             m_pendingRequests = new Dictionary<UUID, HttpRequestClass>();
 
@@ -532,16 +530,12 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
 
             try
             {
-<<<<<<< HEAD
                 Request = (HttpWebRequest)WebRequest.Create(Url);
                 Request.AllowAutoRedirect = false;               
-=======
-                Request = (HttpWebRequest) WebRequest.Create(Url);
 
                 //This works around some buggy HTTP Servers like Lighttpd
                 Request.ServicePoint.Expect100Continue = false;
 
->>>>>>> avn/ubitvar
                 Request.Method = HttpMethod;
                 Request.ContentType = HttpMIMEType;
 
@@ -646,7 +640,8 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
                     {
                         using (Stream responseStream = webRsp.GetResponseStream())
                         {
-                            ResponseBody = responseStream.GetStreamString();
+                            using (StreamReader reader = new StreamReader(responseStream))
+                                ResponseBody = reader.ReadToEnd();
                         }
                     }
                     catch
@@ -676,7 +671,6 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
                     resStream.Close();
                 if (response != null)
                     response.Close();
-<<<<<<< HEAD
 
                 // We need to resubmit 
                 if (
@@ -724,8 +718,6 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
                 {
                     _finished = true;
                 }
-=======
->>>>>>> avn/ubitvar
             }
 
             if (ResponseBody == null)

+ 2 - 17
OpenSim/Region/CoreModules/Scripting/WorldComm/WorldCommModule.cs

@@ -380,28 +380,13 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm
 
             if (sp != null)
             {
-<<<<<<< HEAD
-                // ignore if a child agent this is restricted to inside one
-                // region
-                if (sp.IsChildAgent)
-                    return;
-
-                // Channel zero only goes to the avatar
-                // non zero channel messages only go to the attachments of the avatar.
-                if (channel != 0)
-                {
-                    List<SceneObjectGroup> attachments = sp.GetAttachments();
-                    if (attachments.Count == 0)
-                        return;
-=======
-                // Send message to avatar
+                 // Send message to avatar
                 if (channel == 0)
                 {
-                    // Channel 0 goes to viewer ONLY
+                   // Channel 0 goes to viewer ONLY
                     m_scene.SimChat(Utils.StringToBytes(msg), ChatTypeEnum.Broadcast, 0, pos, name, id, target, false, false);
                     return true;
                 }
->>>>>>> avn/ubitvar
 
                 List<SceneObjectGroup> attachments = sp.GetAttachments();
 

+ 5 - 70
OpenSim/Region/CoreModules/ServiceConnectorsOut/MapImage/MapImageServiceModule.cs

@@ -53,11 +53,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
     /// </remarks>
 
     [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MapImageServiceModule")]
-<<<<<<< HEAD
+
     public class MapImageServiceModule : IMapImageUploadModule, ISharedRegionModule
-=======
-    public class MapImageServiceModule : ISharedRegionModule, IMapImageUploadModule
->>>>>>> avn/ubitvar
     {
         private static readonly ILog m_log =
             LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -97,13 +94,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
             if (config == null)
                 return;
 
-<<<<<<< HEAD
-            int refreshminutes = Convert.ToInt32(config.GetString("RefreshTime"));
-            
-            // if refresh is less than zero, disable the module
-=======
             int refreshminutes = Convert.ToInt32(config.GetString("RefreshTime", "-1"));
->>>>>>> avn/ubitvar
             if (refreshminutes < 0)
             {
                 m_log.WarnFormat("[MAP IMAGE SERVICE MODULE]: Negative refresh time given in config. Module disabled.");
@@ -136,19 +127,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
                 m_refreshTimer.Interval = m_refreshtime;
                 m_refreshTimer.Elapsed += new ElapsedEventHandler(HandleMaptileRefresh);
 
-<<<<<<< HEAD
-                m_log.InfoFormat("[MAP IMAGE SERVICE MODULE]: enabled with refresh time {0} min and service object {1}",
-=======
-            if (m_refreshtime > 0)
-            {
-                m_refreshTimer.Enabled = true;
-                m_refreshTimer.AutoReset = true;
-                m_refreshTimer.Interval = m_refreshtime;
-                m_refreshTimer.Elapsed += new ElapsedEventHandler(HandleMaptileRefresh);
-            }
 
-            m_log.InfoFormat("[MAP IMAGE SERVICE MODULE]: enabled with refresh time {0} min and service object {1}",
->>>>>>> avn/ubitvar
+                m_log.InfoFormat("[MAP IMAGE SERVICE MODULE]: enabled with refresh time {0} min and service object {1}",
                              refreshminutes, service);
             }
             else 
@@ -174,10 +154,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
             // v2 Map generation on startup is now handled by scene to allow bmp to be shared with
             // v1 service and not generate map tiles twice as was previous behavior
             //scene.EventManager.OnRegionReadyStatusChange += s => { if (s.Ready) UploadMapTile(s); };
-<<<<<<< HEAD
 
-=======
->>>>>>> avn/ubitvar
             scene.RegisterModuleInterface<IMapImageUploadModule>(this);
         }
 
@@ -235,15 +212,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
             // If the region/maptile is legacy sized, just upload the one tile like it has always been done
             if (mapTile.Width == Constants.RegionSize && mapTile.Height == Constants.RegionSize)
             {
-<<<<<<< HEAD
-                ConvertAndUploadMaptile(mapTile,
+                ConvertAndUploadMaptile(scene, mapTile,
                                         scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY,
                                         scene.RegionInfo.RegionName);
-=======
-                ConvertAndUploadMaptile(mapTile, scene,
-                                        scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY,
-										scene.RegionInfo.RegionName);
->>>>>>> avn/ubitvar
             }
             else
             {
@@ -263,17 +234,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
                             (int)Constants.RegionSize, (int)Constants.RegionSize);
                         using (Bitmap subMapTile = mapTile.Clone(rect, mapTile.PixelFormat))
                         {
-<<<<<<< HEAD
-                            ConvertAndUploadMaptile(subMapTile,
+                            ConvertAndUploadMaptile(scene, subMapTile,
                                                     scene.RegionInfo.RegionLocX + (xx / Constants.RegionSize),
                                                     scene.RegionInfo.RegionLocY + (yy / Constants.RegionSize),
                                                     scene.Name);
-=======
-                            ConvertAndUploadMaptile(subMapTile, scene,
-                                                    scene.RegionInfo.RegionLocX + (xx / Constants.RegionSize),
-                                                    scene.RegionInfo.RegionLocY + (yy / Constants.RegionSize),
-													scene.Name);
->>>>>>> avn/ubitvar
                         }
                     }
                 }
@@ -285,11 +249,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
         ///</summary>
         public void UploadMapTile(IScene scene)
         {
-<<<<<<< HEAD
-=======
             m_log.DebugFormat("{0}: upload maptile for {1}", LogHeader, scene.RegionInfo.RegionName);
 
->>>>>>> avn/ubitvar
             // Create a JPG map tile and upload it to the AddMapTile API
             IMapImageGenerator tileGenerator = scene.RequestModuleInterface<IMapImageGenerator>();
             if (tileGenerator == null)
@@ -300,23 +261,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
 
             using (Bitmap mapTile = tileGenerator.CreateMapTile())
             {
-<<<<<<< HEAD
-                if (mapTile != null)
-                {
-                    UploadMapTile(scene, mapTile);
-                }
-                else
-                {
-                    m_log.WarnFormat("{0} Tile image generation failed", LogHeader);
-                }
-            }
-        }
-
-        private void ConvertAndUploadMaptile(Image tileImage, uint locX, uint locY, string regionName)
-        {
-            byte[] jpgData = Utils.EmptyBytes;
-
-=======
                 // XXX: The MapImageModule will return a null if the user has chosen not to create map tiles and there
                 // is no static map tile.
                 if (mapTile == null)
@@ -326,11 +270,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
             }
         }
 
-        private void ConvertAndUploadMaptile(Image tileImage, IScene scene, uint locX, uint locY, string regionName)
+        private void ConvertAndUploadMaptile(IScene scene, Image tileImage, uint locX, uint locY, string regionName)
         {
             byte[] jpgData = Utils.EmptyBytes;
 
->>>>>>> avn/ubitvar
             using (MemoryStream stream = new MemoryStream())
             {
                 tileImage.Save(stream, ImageFormat.Jpeg);
@@ -339,11 +282,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
             if (jpgData != Utils.EmptyBytes)
             {
                 string reason = string.Empty;
-<<<<<<< HEAD
-                if (!m_MapService.AddMapTile((int)locX, (int)locY, jpgData, out reason))
-=======
                 if (!m_MapService.AddMapTile((int)locX, (int)locY, jpgData, scene.RegionInfo.ScopeID, out reason))
->>>>>>> avn/ubitvar
                 {
                     m_log.DebugFormat("{0} Unable to upload tile image for {1} at {2}-{3}: {4}", LogHeader,
                         regionName, locX, locY, reason);
@@ -351,11 +290,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
             }
             else
             {
-<<<<<<< HEAD
                 m_log.WarnFormat("{0} Tile image generation failed for region {1}", LogHeader, regionName);
-=======
-                m_log.WarnFormat("{0} Tile image generation failed for region {1}", LogHeader, scene.RegionInfo.RegionName);
->>>>>>> avn/ubitvar
             }
         }
     }

+ 2 - 26
OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs

@@ -269,11 +269,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
             return true;
         }
 
-<<<<<<< HEAD
+
         public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string theirversion, List<UUID> features, out string version, out string reason)
-=======
-        public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string theirversion, out string version, out string reason)
->>>>>>> avn/ubitvar
         {
             reason = "Communications failure";
             version = ServiceVersion;
@@ -302,29 +299,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
                 
                 }
 
-<<<<<<< HEAD
-                return m_scenes[destination.RegionID].QueryAccess(agentID, agentHomeURI, viaTeleport, position, features, out reason);
-=======
-
-                // not really need on a grid running var regions sims
-
-                uint size = m_scenes[destination.RegionID].RegionInfo.RegionSizeX;
-
-                float theirVersionNumber = 0f;
-                string[] versionComponents = theirversion.Split(new char[] { '/' });
-                if (versionComponents.Length >= 2)
-                    float.TryParse(versionComponents[1], out theirVersionNumber);
 
-                // Var regions here, and the requesting simulator is in an older version.
-                // We will forbide this, because it crashes the viewers
-                if (theirVersionNumber < 0.3f && size > 256)
-                {
-                    reason = "Destination is a variable-sized region, and source is an old simulator. Consider upgrading.";
-                    m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Request to access this variable-sized region from {0} simulator was denied", theirVersionNumber);
-                    return false;
-                }
-                return m_scenes[destination.RegionID].QueryAccess(agentID, position, out reason);
->>>>>>> avn/ubitvar
+                return m_scenes[destination.RegionID].QueryAccess(agentID, agentHomeURI, viaTeleport, position, features, out reason);
             }
 
             //m_log.Debug("[LOCAL COMMS]: region not found for QueryAccess");

+ 1 - 14
OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs

@@ -206,11 +206,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
             return m_remoteConnector.UpdateAgent(destination, cAgentData);
         }
 
-<<<<<<< HEAD
+
         public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string sversion, List<UUID> features, out string version, out string reason)
-=======
-        public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string sversion, out string version, out string reason)
->>>>>>> avn/ubitvar
         {
             reason = "Communications failure";
             version = "Unknown";
@@ -219,22 +216,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
                 return false;
 
             // Try local first
-<<<<<<< HEAD
             if (m_localBackend.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, sversion, features, out version, out reason))
-=======
-            if (m_localBackend.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, sversion, out version, out reason))
-                return true;
->>>>>>> avn/ubitvar
                 return true;
 
             // else do the remote thing
             if (!m_localBackend.IsLocalRegion(destination.RegionID))
-<<<<<<< HEAD
                 return m_remoteConnector.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, sversion, features, out version, out reason);
-=======
-                return m_remoteConnector.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, sversion, out version, out reason);
-
->>>>>>> avn/ubitvar
 
             return false;
         }

+ 3 - 81
OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs

@@ -162,13 +162,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
 
         private UUID m_defaultUser;
 
-<<<<<<< HEAD
-        private UUID m_defaultUser;
-
-        public ArchiveReadRequest(Scene scene, string loadPath, Guid requestId, Dictionary<string,object>options)
-=======
         public ArchiveReadRequest(Scene scene, string loadPath, Guid requestId, Dictionary<string, object> options)
->>>>>>> avn/ubitvar
         {
             m_rootScene = scene;
 
@@ -177,11 +171,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                 m_defaultUser = (UUID)options["default-user"];
                 m_log.InfoFormat("Using User {0} as default user", m_defaultUser.ToString());
             }
-<<<<<<< HEAD
-            else 
-=======
             else
->>>>>>> avn/ubitvar
             {
                 m_defaultUser = scene.RegionInfo.EstateSettings.EstateOwner;
             }
@@ -200,10 +190,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             }
 
             m_errorMessage = String.Empty;
-<<<<<<< HEAD
-=======
 
->>>>>>> avn/ubitvar
             m_merge = options.ContainsKey("merge");
             m_forceTerrain = options.ContainsKey("force-terrain");
             m_forceParcels = options.ContainsKey("force-parcels");
@@ -212,34 +199,18 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             m_requestId = requestId;
             m_displacement = options.ContainsKey("displacement") ? (Vector3)options["displacement"] : Vector3.Zero;
             m_rotation = options.ContainsKey("rotation") ? (float)options["rotation"] : 0f;
-<<<<<<< HEAD
-            m_rotationCenter = options.ContainsKey("rotation-center") ? (Vector3)options["rotation-center"] 
-                                : new Vector3(scene.RegionInfo.RegionSizeX / 2f, scene.RegionInfo.RegionSizeY / 2f, 0f);
-
-            // Zero can never be a valid user or group id
-            m_validUserUuids[UUID.Zero] = false;
-            m_validGroupUuids[UUID.Zero] = false;
-=======
             m_rotationCenter = options.ContainsKey("rotation-center") ? (Vector3)options["rotation-center"]
                                 : new Vector3(scene.RegionInfo.RegionSizeX / 2f, scene.RegionInfo.RegionSizeY / 2f, 0f);
 
-            m_requestId = requestId;
-
             // Zero can never be a valid user id (or group)
             m_validUserUuids[UUID.Zero] = false;
             m_validGroupUuids[UUID.Zero] = false;
 
->>>>>>> avn/ubitvar
-
             m_groupsModule = m_rootScene.RequestModuleInterface<IGroupsModule>();
             m_assetService = m_rootScene.AssetService;
         }
 
-<<<<<<< HEAD
-        public ArchiveReadRequest(Scene scene, Stream loadStream, Guid requestId, Dictionary<string, object>options)
-=======
         public ArchiveReadRequest(Scene scene, Stream loadStream, Guid requestId, Dictionary<string, object> options)
->>>>>>> avn/ubitvar
         {
             m_rootScene = scene;
             m_loadPath = null;
@@ -249,11 +220,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             m_requestId = requestId;
 
             m_defaultUser = scene.RegionInfo.EstateSettings.EstateOwner;
-<<<<<<< HEAD
-     
-=======
 
->>>>>>> avn/ubitvar
             // Zero can never be a valid user id
             m_validUserUuids[UUID.Zero] = false;
 
@@ -327,24 +294,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                         if ((successfulAssetRestores + failedAssetRestores) % 250 == 0)
                             m_log.Debug("[ARCHIVER]: Loaded " + successfulAssetRestores + " assets and failed to load " + failedAssetRestores + " assets...");
                     }
-<<<<<<< HEAD
                     else if (filePath.StartsWith(ArchiveConstants.TERRAINS_PATH) && (!m_merge || m_forceTerrain))
-=======
-                    else if ((!m_merge || m_forceTerrain) && filePath.StartsWith(ArchiveConstants.TERRAINS_PATH))
->>>>>>> avn/ubitvar
                     {
                         LoadTerrain(scene, filePath, data);
                     }
                     else if (!m_merge && filePath.StartsWith(ArchiveConstants.SETTINGS_PATH))
                     {
                         LoadRegionSettings(scene, filePath, data, dearchivedScenes);
-<<<<<<< HEAD
                     } 
                     else if (filePath.StartsWith(ArchiveConstants.LANDDATA_PATH) && (!m_merge || m_forceParcels))
-=======
-                    }
-                    else if ((!m_merge || m_forceParcels) && filePath.StartsWith(ArchiveConstants.LANDDATA_PATH))
->>>>>>> avn/ubitvar
                     {
                         sceneContext.SerialisedParcels.Add(Encoding.UTF8.GetString(data));
                     } 
@@ -565,10 +523,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                     }
                 }
 
-<<<<<<< HEAD
-
-=======
->>>>>>> avn/ubitvar
                 bool isTelehub = (sceneObject.UUID == oldTelehubUUID) && (oldTelehubUUID != UUID.Zero);
 
                 // For now, give all incoming scene objects new uuids.  This will allow scenes to be cloned
@@ -585,10 +539,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                 }
 
                 ModifySceneObject(scene, sceneObject);
-<<<<<<< HEAD
-=======
-
->>>>>>> avn/ubitvar
 
                 if (scene.AddRestoredSceneObject(sceneObject, true, false))
                 {
@@ -649,8 +599,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                 // being no copy/no mod for everyone
                 lock (part.TaskInventory)
                 {
-<<<<<<< HEAD
-=======
                     // And zap any troublesome sit target information
                     part.SitTargetOrientation = new Quaternion(0, 0, 0, 1);
                     part.SitTargetPosition = new Vector3(0, 0, 0);
@@ -659,7 +607,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                     // Not doing so results in inventory items
                     // being no copy/no mod for everyone
                     part.TaskInventory.LockItemsForRead(true);
->>>>>>> avn/ubitvar
+
                     TaskInventoryDictionary inv = part.TaskInventory;
                     foreach (KeyValuePair<UUID, TaskInventoryItem> kvp in inv)
                     {
@@ -680,18 +628,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                         if (!ResolveGroupUuid(kvp.Value.GroupID))
                             kvp.Value.GroupID = UUID.Zero;
                     }
-<<<<<<< HEAD
-=======
                     part.TaskInventory.LockItemsForRead(false);
->>>>>>> avn/ubitvar
+
                 }
             }
         }
 
-<<<<<<< HEAD
-        
-=======
->>>>>>> avn/ubitvar
         /// <summary>
         /// Load serialized parcels.
         /// </summary>
@@ -712,11 +654,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                     parcel.AABBMin += parcelDisp;
                     parcel.AABBMax += parcelDisp;
                 }
-<<<<<<< HEAD
-                
-=======
-               
->>>>>>> avn/ubitvar
+
                 // Validate User and Group UUID's
 
                 if (!ResolveGroupUuid(parcel.GroupID))
@@ -731,26 +669,18 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                     }
                     else
                     {
-<<<<<<< HEAD
-                        parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
-=======
                         parcel.OwnerID = m_defaultUser;
                         parcel.GroupID = UUID.Zero;
->>>>>>> avn/ubitvar
                         parcel.IsGroupOwned = false;
                     }
                 }
                 else
                 {
                     if (!ResolveUserUuid(scene, parcel.OwnerID))
-<<<<<<< HEAD
-                        parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
-=======
                         parcel.OwnerID = m_defaultUser;
 
                     if (!ResolveGroupUuid(parcel.GroupID))
                         parcel.GroupID = UUID.Zero;
->>>>>>> avn/ubitvar
                 }
 
                 List<LandAccessEntry> accessList = new List<LandAccessEntry>();
@@ -879,10 +809,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                     if (data == null)
                         return false;
                 }
-<<<<<<< HEAD
 
-=======
->>>>>>> avn/ubitvar
                 //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType);
 
                 AssetBase asset = new AssetBase(new UUID(uuid), String.Empty, assetType, UUID.Zero.ToString());
@@ -1004,11 +931,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
         private bool LoadTerrain(Scene scene, string terrainPath, byte[] data)
         {
             ITerrainModule terrainModule = scene.RequestModuleInterface<ITerrainModule>();
-<<<<<<< HEAD
-
-=======
-           
->>>>>>> avn/ubitvar
             using (MemoryStream ms = new MemoryStream(data))
             {
                 if (m_displacement != Vector3.Zero || m_rotation != 0f)

+ 1 - 32
OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs

@@ -111,19 +111,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             String defaultUser = "";
             float rotation = 0f;
             Vector3 rotationCenter = new Vector3(Constants.RegionSize / 2f, Constants.RegionSize / 2f, 0);
-<<<<<<< HEAD
-            
-            OptionSet options = new OptionSet();
-            options.Add("m|merge", delegate (string v) { mergeOar = (v != null); });
-            options.Add("s|skip-assets", delegate (string v) { skipAssets = (v != null); });
-            options.Add("force-terrain", delegate (string v) { forceTerrain = (v != null); });
-            options.Add("forceterrain", delegate (string v) { forceTerrain = (v != null); });   // downward compatibility
-            options.Add("force-parcels", delegate (string v) { forceParcels = (v != null); });
-            options.Add("forceparcels", delegate (string v) { forceParcels = (v != null); });   // downward compatibility
-            options.Add("no-objects", delegate (string v) { noObjects = (v != null); });
-            options.Add("default-user=", delegate(string v) { defaultUser = (v == null) ? "" : v; });
-            options.Add("displacement=", delegate (string v) {
-=======
+
 
             OptionSet options = new OptionSet();
             options.Add("m|merge", delegate(string v) { mergeOar = (v != null); });
@@ -136,7 +124,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             options.Add("default-user=", delegate(string v) { defaultUser = (v == null) ? "" : v; });
             options.Add("displacement=", delegate(string v)
             {
->>>>>>> avn/ubitvar
                 try
                 {
                     displacement = v == null ? Vector3.Zero : Vector3.Parse(v);
@@ -163,12 +150,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
                 // Convert to radians for internals
                 rotation = Util.Clamp<float>(rotation, -359f, 359f) / 180f * (float)Math.PI;
             });
-<<<<<<< HEAD
-            options.Add("rotation-center=", delegate (string v) {
-=======
             options.Add("rotation-center=", delegate(string v)
             {
->>>>>>> avn/ubitvar
                 try
                 {
                     rotationCenter = v == null ? Vector3.Zero : Vector3.Parse(v);
@@ -308,21 +291,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             Dictionary<string, object> archiveOptions = new Dictionary<string, object>();
             DearchiveRegion(loadPath, Guid.Empty, archiveOptions);
         }
-<<<<<<< HEAD
-        
-        public void DearchiveRegion(string loadPath, Guid requestId, Dictionary<string,object> options)
-        {
-            m_log.InfoFormat(
-                "[ARCHIVER]: Loading archive to region {0} from {1}", Scene.RegionInfo.RegionName, loadPath);
-            
-=======
 
         public void DearchiveRegion(string loadPath, Guid requestId, Dictionary<string, object> options)
         {
             m_log.InfoFormat(
                 "[ARCHIVER]: Loading archive to region {0} from {1}", Scene.RegionInfo.RegionName, loadPath);
 
->>>>>>> avn/ubitvar
             new ArchiveReadRequest(Scene, loadPath, requestId, options).DearchiveRegion();
         }
         
@@ -331,11 +305,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             Dictionary<string, object> archiveOptions = new Dictionary<string, object>();
             DearchiveRegion(loadStream, Guid.Empty, archiveOptions);
         }
-<<<<<<< HEAD
-        
-=======
-
->>>>>>> avn/ubitvar
         public void DearchiveRegion(Stream loadStream, Guid requestId, Dictionary<string, object> options)
         {
             new ArchiveReadRequest(Scene, loadStream, requestId, options).DearchiveRegion();

+ 14 - 60
OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs

@@ -68,6 +68,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
         public event ChangeDelegate OnEstateInfoChange;
         public event MessageDelegate OnEstateMessage;
 
+        private int m_delayCount = 0;
+
         #region Region Module interface
         
         public string Name { get { return "EstateManagementModule"; } }
@@ -146,6 +148,10 @@ namespace OpenSim.Region.CoreModules.World.Estate
                 flags |= RegionFlags.AllowParcelChanges;
             if (Scene.RegionInfo.RegionSettings.BlockShowInSearch)
                 flags |= RegionFlags.BlockParcelSearch;
+            if (Scene.RegionInfo.RegionSettings.GodBlockSearch)
+                flags |= (RegionFlags)(1 << 11);
+            if (Scene.RegionInfo.RegionSettings.Casino)
+                flags |= (RegionFlags)(1 << 10);
 
             if (Scene.RegionInfo.RegionSettings.FixedSun)
                 flags |= RegionFlags.SunFixed;
@@ -198,6 +204,14 @@ namespace OpenSim.Region.CoreModules.World.Estate
                 change(Scene.RegionInfo.RegionID);
         }
 
+        protected void RaiseRegionInfoChange(object sender, ElapsedEventArgs e)
+        {
+            ChangeDelegate change = OnRegionInfoChange;
+
+            if (change != null)
+                change(Scene.RegionInfo.RegionID);
+        }
+
         public void TriggerRegionInfoChange()
         {
             m_regionChangeTimer.Stop();
@@ -1491,68 +1505,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
             sendRegionHandshake(client);
         }
 
-<<<<<<< HEAD
-        private uint GetEstateFlags()
-=======
-        public uint GetRegionFlags()
-        {
-            RegionFlags flags = RegionFlags.None;
-
-            // Fully implemented
-            //
-            if (Scene.RegionInfo.RegionSettings.AllowDamage)
-                flags |= RegionFlags.AllowDamage;
-            if (Scene.RegionInfo.RegionSettings.BlockTerraform)
-                flags |= RegionFlags.BlockTerraform;
-            if (!Scene.RegionInfo.RegionSettings.AllowLandResell)
-                flags |= RegionFlags.BlockLandResell;
-            if (Scene.RegionInfo.RegionSettings.DisableCollisions)
-                flags |= RegionFlags.SkipCollisions;
-            if (Scene.RegionInfo.RegionSettings.DisableScripts)
-                flags |= RegionFlags.SkipScripts;
-            if (Scene.RegionInfo.RegionSettings.DisablePhysics)
-                flags |= RegionFlags.SkipPhysics;
-            if (Scene.RegionInfo.RegionSettings.BlockFly)
-                flags |= RegionFlags.NoFly;
-            if (Scene.RegionInfo.RegionSettings.RestrictPushing)
-                flags |= RegionFlags.RestrictPushObject;
-            if (Scene.RegionInfo.RegionSettings.AllowLandJoinDivide)
-                flags |= RegionFlags.AllowParcelChanges;
-            if (Scene.RegionInfo.RegionSettings.BlockShowInSearch)
-                flags |= RegionFlags.BlockParcelSearch;
-            if (Scene.RegionInfo.RegionSettings.GodBlockSearch)
-                flags |= (RegionFlags)(1 << 11);
-            if (Scene.RegionInfo.RegionSettings.Casino)
-                flags |= (RegionFlags)(1 << 10);
-
-            if (Scene.RegionInfo.RegionSettings.FixedSun)
-                flags |= RegionFlags.SunFixed;
-            if (Scene.RegionInfo.RegionSettings.Sandbox)
-                flags |= RegionFlags.Sandbox;
-            if (Scene.RegionInfo.EstateSettings.AllowVoice)
-                flags |= RegionFlags.AllowVoice;
-            if (Scene.RegionInfo.EstateSettings.AllowLandmark)
-                flags |= RegionFlags.AllowLandmark;
-            if (Scene.RegionInfo.EstateSettings.AllowSetHome)
-                flags |= RegionFlags.AllowSetHome;
-            if (Scene.RegionInfo.EstateSettings.BlockDwell)
-                flags |= RegionFlags.BlockDwell;
-            if (Scene.RegionInfo.EstateSettings.ResetHomeOnTeleport)
-                flags |= RegionFlags.ResetHomeOnTeleport;
-
-
-            // TODO: SkipUpdateInterestList
-
-            // Omitted
-            //
-            // Omitted: NullLayer (what is that?)
-            // Omitted: SkipAgentAction (what does it do?)
-
-            return (uint)flags;
-        }
 
         public uint GetEstateFlags()
->>>>>>> avn/ubitvar
         {
             RegionFlags flags = RegionFlags.None;
 

+ 17 - 403
OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs

@@ -69,11 +69,8 @@ namespace OpenSim.Region.CoreModules.World.Land
         /// <summary>
         /// Minimum land unit size in region co-ordinates.
         /// </summary>
-<<<<<<< HEAD
+
         public const int LandUnit = 4;
-=======
-        public const int landUnit = 4;
->>>>>>> avn/ubitvar
 
         private static readonly string remoteParcelRequestPath = "0009/";
 
@@ -106,17 +103,12 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         // caches ExtendedLandData
         private Cache parcelInfoCache;
-<<<<<<< HEAD
-
 
         /// <summary>
         /// Record positions that avatar's are currently being forced to move to due to parcel entry restrictions.
         /// </summary>
         private Dictionary<UUID, Vector3> forcedPosition = new Dictionary<UUID, Vector3>();
-=======
-        private Dictionary<UUID, Vector3> forcedPosition =
-                new Dictionary<UUID, Vector3>();
->>>>>>> avn/ubitvar
+
 
         // Enables limiting parcel layer info transmission when doing simple updates
         private bool shouldLimitParcelLayerInfoToViewDistance { get; set; }
@@ -132,7 +124,6 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         public void Initialise(IConfigSource source)
         {
-<<<<<<< HEAD
             shouldLimitParcelLayerInfoToViewDistance = true;
             parcelLayerViewDistance = 128;
             IConfig landManagementConfig = source.Configs["LandManagement"];
@@ -140,24 +131,16 @@ namespace OpenSim.Region.CoreModules.World.Land
             {
                 shouldLimitParcelLayerInfoToViewDistance = landManagementConfig.GetBoolean("LimitParcelLayerUpdateDistance", shouldLimitParcelLayerInfoToViewDistance);
                 parcelLayerViewDistance = landManagementConfig.GetInt("ParcelLayerViewDistance", parcelLayerViewDistance);
-=======
-            IConfig cnf = source.Configs["LandManagement"];
-            if (cnf != null)
-            {
-                DefaultGodParcelGroup = new UUID(cnf.GetString("DefaultAdministratorGroupUUID", UUID.Zero.ToString()));
-                DefaultGodParcelName = cnf.GetString("DefaultAdministratorParcelName", "Default Parcel");
->>>>>>> avn/ubitvar
+                DefaultGodParcelGroup = new UUID(landManagementConfig.GetString("DefaultAdministratorGroupUUID", UUID.Zero.ToString()));
+                DefaultGodParcelName = landManagementConfig.GetString("DefaultAdministratorParcelName", "Default Parcel");
             }
         }
 
         public void AddRegion(Scene scene)
         {
             m_scene = scene;
-<<<<<<< HEAD
             m_landIDList = new int[m_scene.RegionInfo.RegionSizeX / LandUnit, m_scene.RegionInfo.RegionSizeY / LandUnit];
-=======
-            m_landIDList = new int[m_scene.RegionInfo.RegionSizeX / landUnit, m_scene.RegionInfo.RegionSizeY / landUnit];
->>>>>>> avn/ubitvar
+
             landChannel = new LandChannel(scene, this);
 
             parcelInfoCache = new Cache();
@@ -299,11 +282,8 @@ namespace OpenSim.Region.CoreModules.World.Land
             {
                 m_landList.Clear();
                 m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1;
-<<<<<<< HEAD
+
                 m_landIDList = new int[m_scene.RegionInfo.RegionSizeX / LandUnit, m_scene.RegionInfo.RegionSizeY / LandUnit];
-=======
-                m_landIDList = new int[m_scene.RegionInfo.RegionSizeX / landUnit, m_scene.RegionInfo.RegionSizeY / landUnit];
->>>>>>> avn/ubitvar
             }
         }
         
@@ -313,16 +293,10 @@ namespace OpenSim.Region.CoreModules.World.Land
         /// <returns>The parcel created.</returns>
         protected ILandObject CreateDefaultParcel()
         {
-<<<<<<< HEAD
-            m_log.DebugFormat(
-                "[LAND MANAGEMENT MODULE]: Creating default parcel for region {0}", m_scene.RegionInfo.RegionName);
-            
-            ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);                                                
-=======
             m_log.DebugFormat("{0} Creating default parcel for region {1}", LogHeader, m_scene.RegionInfo.RegionName);
 
             ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene);
->>>>>>> avn/ubitvar
+
             fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0,
                                             (int)m_scene.RegionInfo.RegionSizeX, (int)m_scene.RegionInfo.RegionSizeY));
             fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
@@ -456,15 +430,10 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         public void SendLandUpdate(ScenePresence avatar, bool force)
         {
-<<<<<<< HEAD
-            ILandObject over = GetLandObject((int)Math.Min(((int)m_scene.RegionInfo.RegionSizeX - 1), Math.Max(0, Math.Round(avatar.AbsolutePosition.X))),
-                                             (int)Math.Min(((int)m_scene.RegionInfo.RegionSizeY - 1), Math.Max(0, Math.Round(avatar.AbsolutePosition.Y))));
-=======
             if (avatar.IsChildAgent)
                 return;
 
             ILandObject over = GetLandObjectClipedXY(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
->>>>>>> avn/ubitvar
 
             if (over != null)
             {
@@ -621,28 +590,17 @@ namespace OpenSim.Region.CoreModules.World.Land
                 new_land.LandData.LocalID = newLandLocalID;
 
                 bool[,] landBitmap = new_land.GetLandBitmap();
-<<<<<<< HEAD
-                // m_log.DebugFormat("{0} AddLandObject. new_land.bitmapSize=({1},{2}). newLocalID={3}",
-                //                 LogHeader, landBitmap.GetLength(0), landBitmap.GetLength(1), newLandLocalID);
-
-=======
->>>>>>> avn/ubitvar
                 if (landBitmap.GetLength(0) != m_landIDList.GetLength(0) || landBitmap.GetLength(1) != m_landIDList.GetLength(1))
                 {
                     // Going to variable sized regions can cause mismatches
                     m_log.ErrorFormat("{0} AddLandObject. Added land bitmap different size than region ID map. bitmapSize=({1},{2}), landIDSize=({3},{4})",
-<<<<<<< HEAD
-                        LogHeader, landBitmap.GetLength(0), landBitmap.GetLength(1), m_landIDList.GetLength(0), m_landIDList.GetLength(1) );
-=======
                         LogHeader, landBitmap.GetLength(0), landBitmap.GetLength(1), m_landIDList.GetLength(0), m_landIDList.GetLength(1));
->>>>>>> avn/ubitvar
                 }
                 else
                 {
                     // If other land objects still believe that they occupy any parts of the same space, 
                     // then do not allow the add to proceed.
                     for (int x = 0; x < landBitmap.GetLength(0); x++)
-<<<<<<< HEAD
                     {
                         for (int y = 0; y < landBitmap.GetLength(1); y++)
                         {
@@ -650,40 +608,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                             {
                                 int lastRecordedLandId = m_landIDList[x, y];
 
-                                if (lastRecordedLandId > 0)
-                                {
-                                    ILandObject lastRecordedLo = m_landList[lastRecordedLandId];
-
-                                    if (lastRecordedLo.LandBitmap[x, y])
-                                    {
-                                        m_log.ErrorFormat(
-                                            "{0}: Cannot add parcel \"{1}\", local ID {2} at tile {3},{4} because this is still occupied by parcel \"{5}\", local ID {6} in {7}",
-                                            LogHeader, new_land.LandData.Name, new_land.LandData.LocalID, x, y, 
-                                            lastRecordedLo.LandData.Name, lastRecordedLo.LandData.LocalID, m_scene.Name);
-
-                                        return null;
-                                    }
-                                }
-                            }
-                        }
-                    }
-
-                    for (int x = 0; x < landBitmap.GetLength(0); x++)
-=======
->>>>>>> avn/ubitvar
-                    {
-                        for (int y = 0; y < landBitmap.GetLength(1); y++)
-                        {
-                            if (landBitmap[x, y])
-                            {
-<<<<<<< HEAD
-                                // m_log.DebugFormat(
-                                //     "[LAND MANAGEMENT MODULE]: Registering parcel {0} for land co-ord ({1}, {2}) on {3}", 
-                                //     new_land.LandData.Name, x, y, m_scene.RegionInfo.RegionName);
-                                    
-=======
-                                int lastRecordedLandId = m_landIDList[x, y];
-
                                 if (lastRecordedLandId > 0)
                                 {
                                     ILandObject lastRecordedLo = m_landList[lastRecordedLandId];
@@ -712,7 +636,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                                 //                                "[LAND MANAGEMENT MODULE]: Registering parcel {0} for land co-ord ({1}, {2}) on {3}", 
                                 //                                new_land.LandData.Name, x, y, m_scene.RegionInfo.RegionName);
 
->>>>>>> avn/ubitvar
                                 m_landIDList[x, y] = newLandLocalID;
                             }
                         }
@@ -829,33 +752,6 @@ namespace OpenSim.Region.CoreModules.World.Land
         /// <returns>Land object at the point supplied</returns>
         public ILandObject GetLandObject(float x_float, float y_float)
         {
-<<<<<<< HEAD
-            return GetLandObject((int)x_float, (int)y_float, true /* returnNullIfLandObjectNotFound */);
-            /*
-            int x;
-            int y;
-
-            if (x_float >= m_scene.RegionInfo.RegionSizeX || x_float < 0 || y_float >= m_scene.RegionInfo.RegionSizeX || y_float < 0)
-                return null;
-
-            try
-            {
-                x = Convert.ToInt32(Math.Floor(Convert.ToDouble(x_float) / (float)landUnit));
-                y = Convert.ToInt32(Math.Floor(Convert.ToDouble(y_float) / (float)landUnit));
-            }
-            catch (OverflowException)
-            {
-                return null;
-            }
-
-            if (x >= (m_scene.RegionInfo.RegionSizeX / landUnit)
-                    || y >= (m_scene.RegionInfo.RegionSizeY / landUnit)
-                    || x < 0
-                    || y < 0)
-            {
-                return null;
-            }
-=======
             return GetLandObject((int)x_float, (int)y_float, true);
         }
 
@@ -875,45 +771,18 @@ namespace OpenSim.Region.CoreModules.World.Land
                 avy = 0;
             else if (avy >= m_scene.RegionInfo.RegionSizeY)
                 avy = (int)Constants.RegionSize - 1;
->>>>>>> avn/ubitvar
 
             lock (m_landIDList)
             {
-<<<<<<< HEAD
-                // Corner case. If an autoreturn happens during sim startup
-                // we will come here with the list uninitialized
-                //
-//                int landId = m_landIDList[x, y];
-                
-//                if (landId == 0)
-//                    m_log.DebugFormat(
-//                        "[LAND MANAGEMENT MODULE]: No land object found at ({0}, {1}) on {2}", 
-//                        x, y, m_scene.RegionInfo.RegionName);
-
-                try
-                {
-                    if (m_landList.ContainsKey(m_landIDList[x, y]))
-                        return m_landList[m_landIDList[x, y]];
-                }
-                catch (Exception e)
-                {
-                    m_log.DebugFormat("{0} GetLandObject exception. x={1}, y={2}, m_landIDList.len=({3},{4})",
-                        LogHeader, x, y, m_landIDList.GetLength(0), m_landIDList.GetLength(1));
-                }
-                
-                return null;
-=======
                 try
                 {
-                    return m_landList[m_landIDList[avx / landUnit, avy / landUnit]];
+                    return m_landList[m_landIDList[avx / LandUnit, avy / LandUnit]];
                 }
                 catch (IndexOutOfRangeException)
                 {
                     return null;
                 }
->>>>>>> avn/ubitvar
             }
-             */
         }
 
         // Public entry.
@@ -923,38 +792,15 @@ namespace OpenSim.Region.CoreModules.World.Land
             return GetLandObject(x, y, false /* returnNullIfLandObjectNotFound */);
         }
 
-<<<<<<< HEAD
-        /// <summary>
-        /// Given a region position, return the parcel land object for that location
-        /// </summary>
-        /// <returns>
-        /// The land object.
-        /// </returns>
-        /// <param name='x'></param>
-        /// <param name='y'></param>
-        /// <param name='returnNullIfLandObjectNotFound'>
-        /// Return null if the land object requested is not within the region's bounds.
-        /// </param>
-        private ILandObject GetLandObject(int x, int y, bool returnNullIfLandObjectOutsideBounds)
-        {
-            if (x >= m_scene.RegionInfo.RegionSizeX || y >=  m_scene.RegionInfo.RegionSizeY || x < 0 || y < 0)
-=======
         public ILandObject GetLandObject(int x, int y, bool returnNullIfLandObjectOutsideBounds)
         {
             if (x >= m_scene.RegionInfo.RegionSizeX || y >= m_scene.RegionInfo.RegionSizeY || x < 0 || y < 0)
->>>>>>> avn/ubitvar
             {
                 // These exceptions here will cause a lot of complaints from the users specifically because
                 // they happen every time at border crossings
                 if (returnNullIfLandObjectOutsideBounds)
                     return null;
                 else
-<<<<<<< HEAD
-                    throw new Exception(
-                        String.Format("{0} GetLandObject for non-existent position. Region={1}, pos=<{2},{3}",
-                                                LogHeader, m_scene.RegionInfo.RegionName, x, y)
-                );
-=======
                     throw new Exception("Error: Parcel not found at point " + x + ", " + y);
             }
 
@@ -968,7 +814,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                 {
                         return null;
                 }
->>>>>>> avn/ubitvar
             }
 
             return m_landList[m_landIDList[x / 4, y / 4]];
@@ -987,19 +832,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             return ret;
         }
 
-        // Create a 'parcel is here' bitmap for the parcel identified by the passed landID
-        private bool[,] CreateBitmapForID(int landID)
-        {
-            bool[,] ret = new bool[m_landIDList.GetLength(0), m_landIDList.GetLength(1)];
-
-            for (int xx = 0; xx < m_landIDList.GetLength(0); xx++)
-                for (int yy = 0; yy < m_landIDList.GetLength(0); yy++)
-                    if (m_landIDList[xx, yy] == landID)
-                        ret[xx, yy] = true;
-
-            return ret;
-        }
-
         #endregion
 
         #region Parcel Modification
@@ -1169,19 +1001,12 @@ namespace OpenSim.Region.CoreModules.World.Land
 
             //Now add the new land object
             ILandObject result = AddLandObject(newLand);
-<<<<<<< HEAD
 
-            if (result != null)
-            {
-                UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData);
-                result.SendLandUpdateToAvatarsOverMe();
-            }
-=======
             UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData);
             result.SendLandUpdateToAvatarsOverMe();
             startLandObject.SendLandUpdateToAvatarsOverMe();
             m_scene.ForEachClient(SendParcelOverlay);
->>>>>>> avn/ubitvar
+
         }
 
         /// <summary>
@@ -1263,15 +1088,6 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         #region Parcel Updating
 
-<<<<<<< HEAD
-        // Send parcel layer info for the whole region
-        public void SendParcelOverlay(IClientAPI remote_client)
-        {
-            SendParcelOverlay(remote_client, 0, 0, (int)Constants.MaximumRegionSize);
-        }
-=======
->>>>>>> avn/ubitvar
-
         /// <summary>
         /// Send the parcel overlay blocks to the client. We send the overlay packets
         /// around a location and limited by the 'parcelLayerViewDistance'. This number
@@ -1285,7 +1101,7 @@ namespace OpenSim.Region.CoreModules.World.Land
         /// <param name="xPlace">X position in the region to send surrounding parcel layer info</param>
         /// <param name="yPlace">y position in the region to send surrounding parcel layer info</param>
         /// <param name="layerViewDistance">Distance from x,y position to send parcel layer info</param>
-        private  void SendParcelOverlay(IClientAPI remote_client, int xPlace, int yPlace, int layerViewDistance)
+        public void SendParcelOverlay(IClientAPI remote_client)
         {
             if (remote_client.SceneAgent.PresenceType == PresenceType.Npc)
                 return;
@@ -1295,149 +1111,18 @@ namespace OpenSim.Region.CoreModules.World.Land
             byte[] byteArray = new byte[LAND_BLOCKS_PER_PACKET];
             int byteArrayCount = 0;
             int sequenceID = 0;
-<<<<<<< HEAD
-
-            int xLow = 0;
-            int xHigh = (int)m_scene.RegionInfo.RegionSizeX;
-            int yLow = 0;
-            int yHigh = (int)m_scene.RegionInfo.RegionSizeY;
-
-            if (shouldLimitParcelLayerInfoToViewDistance)
-            {
-                // Compute view distance around the given point
-                int txLow = xPlace - layerViewDistance;
-                int txHigh = xPlace + layerViewDistance;
-                // If the distance is outside the region area, move the view distance to ba all in the region
-                if (txLow < xLow)
-=======
 
-            // Layer data is in landUnit (4m) chunks
-            for (int y = 0; y < m_scene.RegionInfo.RegionSizeY; y += landUnit)
+            // Layer data is in LandUnit (4m) chunks
+            for (int y = 0; y < m_scene.RegionInfo.RegionSizeY; y += LandUnit)
             {
-                for (int x = 0; x < m_scene.RegionInfo.RegionSizeX; x += landUnit)
->>>>>>> avn/ubitvar
+                for (int x = 0; x < m_scene.RegionInfo.RegionSizeX; x += LandUnit)
                 {
-                    txLow = xLow;
-                    txHigh = Math.Min(yLow + (layerViewDistance * 2), xHigh);
-                }
-                if (txHigh > xHigh)
-                {
-                    txLow = Math.Max(xLow, xHigh - (layerViewDistance * 2));
-                    txHigh = xHigh;
-                }
-                xLow = txLow;
-                xHigh = txHigh;
+                    byte tempByte = 0; //This represents the byte for the current 4x4
 
-<<<<<<< HEAD
-                int tyLow = yPlace - layerViewDistance;
-                int tyHigh = yPlace + layerViewDistance;
-                if (tyLow < yLow)
-                {
-                    tyLow = yLow;
-                    tyHigh = Math.Min(yLow + (layerViewDistance * 2), yHigh);
-                }
-                if (tyHigh > yHigh)
-                {
-                    tyLow = Math.Max(yLow, yHigh - (layerViewDistance * 2));
-                    tyHigh = yHigh;
-                }
-                yLow = tyLow;
-                yHigh = tyHigh;
-            }
-            // m_log.DebugFormat("{0} SendParcelOverlay: place=<{1},{2}>, vDist={3}, xLH=<{4},{5}, yLH=<{6},{7}>",
-            //     LogHeader, xPlace, yPlace, layerViewDistance, xLow, xHigh, yLow, yHigh);
-=======
                     ILandObject currentParcelBlock = GetLandObject(x, y);
->>>>>>> avn/ubitvar
 
-            // Layer data is in landUnit (4m) chunks
-            for (int y = yLow; y < yHigh / Constants.TerrainPatchSize * (Constants.TerrainPatchSize / LandUnit); y++)
-            {
-                for (int x = xLow; x < xHigh / Constants.TerrainPatchSize * (Constants.TerrainPatchSize / LandUnit); x++)
-                {
-                    byteArray[byteArrayCount] = BuildLayerByte(GetLandObject(x * LandUnit, y * LandUnit), x, y, remote_client);
-                    byteArrayCount++;
-                    if (byteArrayCount >= LAND_BLOCKS_PER_PACKET)
+                    if (currentParcelBlock != null)
                     {
-<<<<<<< HEAD
-                        // m_log.DebugFormat("{0} SendParcelOverlay, sending packet, bytes={1}", LogHeader, byteArray.Length);
-                        remote_client.SendLandParcelOverlay(byteArray, sequenceID);
-                        byteArrayCount = 0;
-                        sequenceID++;
-                        byteArray = new byte[LAND_BLOCKS_PER_PACKET];
-                    }
-
-                }
-            }
-
-            if (byteArrayCount != 0)
-            {
-                remote_client.SendLandParcelOverlay(byteArray, sequenceID);
-                // m_log.DebugFormat("{0} SendParcelOverlay, complete sending packet, bytes={1}", LogHeader, byteArray.Length);
-            }
-        }
-
-        private byte BuildLayerByte(ILandObject currentParcelBlock, int x, int y, IClientAPI remote_client)
-        {
-            byte tempByte = 0; //This represents the byte for the current 4x4
-
-            if (currentParcelBlock != null)
-            {
-                if (currentParcelBlock.LandData.OwnerID == remote_client.AgentId)
-                {
-                    //Owner Flag
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_REQUESTER);
-                }
-                else if (currentParcelBlock.LandData.SalePrice > 0 &&
-                         (currentParcelBlock.LandData.AuthBuyerID == UUID.Zero ||
-                          currentParcelBlock.LandData.AuthBuyerID == remote_client.AgentId))
-                {
-                    //Sale Flag
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_IS_FOR_SALE);
-                }
-                else if (currentParcelBlock.LandData.OwnerID == UUID.Zero)
-                {
-                    //Public Flag
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_PUBLIC);
-                }
-                else
-                {
-                    //Other Flag
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_OTHER);
-                }
-
-                //Now for border control
-
-                ILandObject westParcel = null;
-                ILandObject southParcel = null;
-                if (x > 0)
-                {
-                    westParcel = GetLandObject((x - 1) * LandUnit, y * LandUnit);
-                }
-                if (y > 0)
-                {
-                    southParcel = GetLandObject(x * LandUnit, (y - 1) * LandUnit);
-                }
-
-                if (x == 0)
-                {
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_FLAG_PROPERTY_BORDER_WEST);
-                }
-                else if (westParcel != null && westParcel != currentParcelBlock)
-                {
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_FLAG_PROPERTY_BORDER_WEST);
-                }
-
-                if (y == 0)
-                {
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_FLAG_PROPERTY_BORDER_SOUTH);
-                }
-                else if (southParcel != null && southParcel != currentParcelBlock)
-                {
-                    tempByte = Convert.ToByte(tempByte | LandChannel.LAND_FLAG_PROPERTY_BORDER_SOUTH);
-                }
-
-=======
                         // types 
                         if (currentParcelBlock.LandData.OwnerID == remote_client.AgentId)
                         {
@@ -1525,10 +1210,7 @@ namespace OpenSim.Region.CoreModules.World.Land
             if (byteArrayCount > 0)
             {
                 remote_client.SendLandParcelOverlay(byteArray, sequenceID);
->>>>>>> avn/ubitvar
             }
-
-            return tempByte;
         }
 
         public void ClientOnParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id,
@@ -1569,10 +1251,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                 temp[i].SendLandProperties(sequence_id, snap_selection, requestResult, remote_client);
             }
 
-<<<<<<< HEAD
-            // Also send the layer data around the point of interest
-            SendParcelOverlay(remote_client, (start_x + end_x) / 2, (start_y + end_y) / 2, parcelLayerViewDistance);
-=======
 //            SendParcelOverlay(remote_client);
         }
 
@@ -1612,7 +1290,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                          avatar.currentParcelUUID = parcelID; // force parcel flags review
                  });
             }
->>>>>>> avn/ubitvar
         }
 
         public void ClientOnParcelPropertiesUpdateRequest(LandUpdateArgs args, int localID, IClientAPI remote_client)
@@ -1821,35 +1498,17 @@ namespace OpenSim.Region.CoreModules.World.Land
                 for (int i = 0; i < data.Count; i++)
                     IncomingLandObjectFromStorage(data[i]);
 
-<<<<<<< HEAD
-            // Prevent race conditions from any auto-creation of new parcels for varregions whilst we are still loading
-            // the existing parcels.
-            lock (m_landList)
-            {
-                for (int i = 0; i < data.Count; i++)
-                    IncomingLandObjectFromStorage(data[i]);
-
-                // Layer data is in landUnit (4m) chunks
+                // Layer data is in LandUnit (4m) chunks
                 for (int y = 0; y < m_scene.RegionInfo.RegionSizeY / Constants.TerrainPatchSize * (Constants.TerrainPatchSize / LandUnit); y++)
                 {
                     for (int x = 0; x < m_scene.RegionInfo.RegionSizeX / Constants.TerrainPatchSize * (Constants.TerrainPatchSize / LandUnit); x++)
-=======
-                // Layer data is in landUnit (4m) chunks
-                for (int y = 0; y < m_scene.RegionInfo.RegionSizeY / Constants.TerrainPatchSize * (Constants.TerrainPatchSize / landUnit); y++)
-                {
-                    for (int x = 0; x < m_scene.RegionInfo.RegionSizeX / Constants.TerrainPatchSize * (Constants.TerrainPatchSize / landUnit); x++)
->>>>>>> avn/ubitvar
                     {
                         if (m_landIDList[x, y] == 0)
                         {
                             if (m_landList.Count == 1)
                             {
                                 m_log.DebugFormat(
-<<<<<<< HEAD
-                                    "[{0}]: Auto-extending land parcel as landID at {1},{2} is 0 and only one land parcel is present in {3}", 
-=======
                                     "[{0}]: Auto-extending land parcel as landID at {1},{2} is 0 and only one land parcel is present in {3}",
->>>>>>> avn/ubitvar
                                     LogHeader, x, y, m_scene.Name);
 
                                 int onlyParcelID = 0;
@@ -1872,19 +1531,11 @@ namespace OpenSim.Region.CoreModules.World.Land
                             else if (m_landList.Count > 1)
                             {
                                 m_log.DebugFormat(
-<<<<<<< HEAD
-                                    "{0}: Auto-creating land parcel as landID at {1},{2} is 0 and more than one land parcel is present in {3}", 
-                                    LogHeader, x, y, m_scene.Name);
-
-                                // There are several other parcels so we must create a new one for the unassigned space
-                                ILandObject newLand = new LandObject(UUID.Zero, false, m_scene);                                                
-=======
                                     "{0}: Auto-creating land parcel as landID at {1},{2} is 0 and more than one land parcel is present in {3}",
                                     LogHeader, x, y, m_scene.Name);
 
                                 // There are several other parcels so we must create a new one for the unassigned space
                                 ILandObject newLand = new LandObject(UUID.Zero, false, m_scene);
->>>>>>> avn/ubitvar
                                 // Claim all the unclaimed "0" ids
                                 newLand.SetLandBitmap(CreateBitmapForID(0));
                                 newLand.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
@@ -1895,11 +1546,7 @@ namespace OpenSim.Region.CoreModules.World.Land
                             {
                                 // We should never reach this point as the separate code path when no land data exists should have fired instead.
                                 m_log.WarnFormat(
-<<<<<<< HEAD
-                                    "{0}: Ignoring request to auto-create parcel in {1} as there are no other parcels present", 
-=======
                                     "{0}: Ignoring request to auto-create parcel in {1} as there are no other parcels present",
->>>>>>> avn/ubitvar
                                     LogHeader, m_scene.Name);
                             }
                         }
@@ -1910,13 +1557,9 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         private void IncomingLandObjectFromStorage(LandData data)
         {
-<<<<<<< HEAD
-            ILandObject new_land = new LandObject(data, m_scene);
-=======
-
             ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene);
             new_land.LandData = data.Copy();
->>>>>>> avn/ubitvar
+
             new_land.SetLandBitmapFromByteArray();            
             AddLandObject(new_land);
 //            new_land.SendLandUpdateToAvatarsOverMe();
@@ -2568,17 +2211,6 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         private void AppendParcelsSummaryReport(StringBuilder report)
         {           
-<<<<<<< HEAD
-            report.AppendFormat("Land information for {0}\n", m_scene.Name);
-
-            ConsoleDisplayTable cdt = new ConsoleDisplayTable();
-            cdt.AddColumn("Parcel Name", ConsoleDisplayUtil.ParcelNameSize);
-            cdt.AddColumn("ID", 3);
-            cdt.AddColumn("Area", 6);
-            cdt.AddColumn("Starts", ConsoleDisplayUtil.VectorSize);
-            cdt.AddColumn("Ends", ConsoleDisplayUtil.VectorSize);
-            cdt.AddColumn("Owner", ConsoleDisplayUtil.UserNameSize);
-=======
             report.AppendFormat("Land information for {0}\n", m_scene.RegionInfo.RegionName);            
             report.AppendFormat(
                 "{0,-20} {1,-10} {2,-9} {3,-18} {4,-18} {5,-20}\n",
@@ -2588,27 +2220,12 @@ namespace OpenSim.Region.CoreModules.World.Land
                 "AABBMin",
                 "AABBMax",
                 "Owner");
->>>>>>> avn/ubitvar
             
             lock (m_landList)
             {
                 foreach (ILandObject lo in m_landList.Values)
                 {
                     LandData ld = lo.LandData;
-<<<<<<< HEAD
-                    string ownerName;
-                    if (ld.IsGroupOwned)
-                    {
-                        GroupRecord rec = m_groupManager.GetGroupRecord(ld.GroupID);
-                        ownerName = (rec != null) ? rec.GroupName : "Unknown Group";
-                    }
-                    else
-                    {
-                        ownerName = m_userManager.GetUserName(ld.OwnerID);
-                    }
-                    cdt.AddRow(
-                        ld.Name, ld.LocalID, ld.Area, lo.StartPoint, lo.EndPoint, ownerName);
-=======
                     
                     report.AppendFormat(
                         "{0,-20} {1,-10} {2,-9} {3,-18} {4,-18} {5,-20}\n", 
@@ -2636,11 +2253,8 @@ namespace OpenSim.Region.CoreModules.World.Land
                 else
                 {
                     ForceAvatarToPosition(avatar, avatar.lastKnownAllowedPosition);
->>>>>>> avn/ubitvar
                 }
             }
-
-            report.Append(cdt.ToString());
         } 
 
         private void AppendParcelReport(StringBuilder report, ILandObject lo)

+ 2 - 82
OpenSim/Region/CoreModules/World/Land/LandObject.cs

@@ -46,20 +46,12 @@ namespace OpenSim.Region.CoreModules.World.Land
 
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
         private static readonly string LogHeader = "[LAND OBJECT]";
-<<<<<<< HEAD
-
-        private readonly int landUnit = 4;
-
-        private int m_lastSeqId = 0;
-              
-=======
 
         private readonly int landUnit = 4;
 
         private int m_lastSeqId = 0;
         private int m_expiryCounter = 0;
 
->>>>>>> avn/ubitvar
         protected Scene m_scene;
         protected List<SceneObjectGroup> primsOverMe = new List<SceneObjectGroup>();
         protected Dictionary<uint, UUID> m_listTransactions = new Dictionary<uint, UUID>();
@@ -67,16 +59,12 @@ namespace OpenSim.Region.CoreModules.World.Land
         protected ExpiringCache<UUID, bool> m_groupMemberCache = new ExpiringCache<UUID, bool>();
         protected TimeSpan m_groupMemberCacheTimeout = TimeSpan.FromSeconds(30);  // cache invalidation after 30 seconds
 
-<<<<<<< HEAD
-        public bool[,] LandBitmap { get; set; }
-=======
         private bool[,] m_landBitmap;
         public bool[,] LandBitmap
         {
             get { return m_landBitmap; }
             set { m_landBitmap = value; }
         }
->>>>>>> avn/ubitvar
 
         #endregion
 
@@ -87,9 +75,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             return free;
         }
 
-<<<<<<< HEAD
-        public LandData LandData { get; set; }
-=======
         protected LandData m_landData;        
         public LandData LandData
         {
@@ -97,7 +82,6 @@ namespace OpenSim.Region.CoreModules.World.Land
 
             set { m_landData = value; }
         }
->>>>>>> avn/ubitvar
 
         public IPrimCounts PrimCounts { get; set; }
 
@@ -225,12 +209,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             else
             {
                 // Normal Calculations
-<<<<<<< HEAD
-                int parcelMax = (int)(((float)LandData.Area / (m_scene.RegionInfo.RegionSizeX * m_scene.RegionInfo.RegionSizeY))
-                              * (float)m_scene.RegionInfo.ObjectCapacity
-                              * (float)m_scene.RegionInfo.RegionSettings.ObjectBonus);
-                // TODO: The calculation of ObjectBonus should be refactored. It does still not work in the same manner as SL!
-=======
                 int parcelMax = (int)( (long)LandData.Area
                               * (long)m_scene.RegionInfo.ObjectCapacity
                               * (long)m_scene.RegionInfo.RegionSettings.ObjectBonus
@@ -252,7 +230,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                 int parcelMax = (int)((long)LandData.Area
                               * (long)m_scene.RegionInfo.ObjectCapacity
                               / 65536L);
->>>>>>> avn/ubitvar
                 return parcelMax;
             }
         }
@@ -266,15 +243,10 @@ namespace OpenSim.Region.CoreModules.World.Land
             else
             {
                 //Normal Calculations
-<<<<<<< HEAD
-                int simMax = (int)(((float)LandData.SimwideArea / (m_scene.RegionInfo.RegionSizeX * m_scene.RegionInfo.RegionSizeY))
-                           * (float)m_scene.RegionInfo.ObjectCapacity);
-=======
                 int simMax = (int)(   (long)LandData.SimwideArea
                                     * (long)m_scene.RegionInfo.ObjectCapacity
                                     / (long)(m_scene.RegionInfo.RegionSizeX * m_scene.RegionInfo.RegionSizeY) );
                 // m_log.DebugFormat("Simwide Area: {0}, Capacity {1}, SimMax {2}", LandData.SimwideArea, m_scene.RegionInfo.ObjectCapacity, simMax);
->>>>>>> avn/ubitvar
                 return simMax;
             }
         }
@@ -439,12 +411,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             {
                 uint preserve = LandData.Flags & ~allowedDelta;
                 newData.Flags = preserve | (args.ParcelFlags & allowedDelta);
-<<<<<<< HEAD
-
-                m_scene.LandChannel.UpdateLandObject(LandData.LocalID, newData);
-                SendLandUpdateToAvatarsOverMe(snap_selection);
-            }
-=======
 
                 uint curdelta = LandData.Flags ^ newData.Flags;
                 curdelta &= (uint)(ParcelFlags.SoundLocal);
@@ -456,7 +422,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                 return true; 
             }
             return false;
->>>>>>> avn/ubitvar
         }
 
         public void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area)
@@ -806,17 +771,11 @@ namespace OpenSim.Region.CoreModules.World.Land
         /// </summary>
         private void UpdateAABBAndAreaValues()
         {
-<<<<<<< HEAD
-            int min_x = 10000;
-            int min_y = 10000;
-            int max_x = 0;
-            int max_y = 0;
-=======
+
             int min_x = Int32.MaxValue;
             int min_y = Int32.MaxValue;
             int max_x = Int32.MinValue;
             int max_y = Int32.MinValue;
->>>>>>> avn/ubitvar
             int tempArea = 0;
             int x, y;
             for (x = 0; x < LandBitmap.GetLength(0); x++)
@@ -825,12 +784,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                 {
                     if (LandBitmap[x, y] == true)
                     {
-<<<<<<< HEAD
-                        if (min_x > x) min_x = x;
-                        if (min_y > y) min_y = y;
-                        if (max_x < x) max_x = x;
-                        if (max_y < y) max_y = y;
-=======
                         if (min_x > x)
                             min_x = x;
                         if (min_y > y)
@@ -839,7 +792,6 @@ namespace OpenSim.Region.CoreModules.World.Land
                             max_x = x;
                         if (max_y < y)
                             max_y = y;
->>>>>>> avn/ubitvar
                         tempArea += landUnit * landUnit; //16sqm peice of land
                     }
                 }
@@ -847,27 +799,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             int tx = min_x * landUnit;
             if (tx > ((int)m_scene.RegionInfo.RegionSizeX - 1))
                 tx = ((int)m_scene.RegionInfo.RegionSizeX - 1);
-<<<<<<< HEAD
-            int ty = min_y * landUnit;
-            if (ty > ((int)m_scene.RegionInfo.RegionSizeY - 1))
-                ty = ((int)m_scene.RegionInfo.RegionSizeY - 1);
-
-            LandData.AABBMin =
-                new Vector3(
-                    (float)(min_x * landUnit), (float)(min_y * landUnit), m_scene != null ? (float)m_scene.Heightmap[tx, ty] : 0);
-
-            tx = max_x * landUnit;
-            if (tx > ((int)m_scene.RegionInfo.RegionSizeX - 1))
-                tx = ((int)m_scene.RegionInfo.RegionSizeX - 1);
-            ty = max_y * landUnit;
-            if (ty > ((int)m_scene.RegionInfo.RegionSizeY - 1))
-                ty = ((int)m_scene.RegionInfo.RegionSizeY - 1);
-
-            LandData.AABBMax 
-                = new Vector3(
-                    (float)(max_x * landUnit), (float)(max_y * landUnit), m_scene != null ? (float)m_scene.Heightmap[tx, ty] : 0);
-=======
-
             int htx;
             if (tx >= ((int)m_scene.RegionInfo.RegionSizeX))
                 htx = (int)m_scene.RegionInfo.RegionSizeX - 1;
@@ -904,7 +835,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             LandData.AABBMax 
                 = new Vector3(
                     (float)(tx), (float)(ty), m_scene != null ? (float)m_scene.Heightmap[htx, hty] : 0);
->>>>>>> avn/ubitvar
 
             LandData.Area = tempArea;
         }
@@ -920,10 +850,6 @@ namespace OpenSim.Region.CoreModules.World.Land
         public void SetLandBitmap(bool[,] bitmap)
         {
             LandBitmap = bitmap;
-<<<<<<< HEAD
-            // m_log.DebugFormat("{0} SetLandBitmap. BitmapSize=<{1},{2}>", LogHeader, LandBitmap.GetLength(0), LandBitmap.GetLength(1));
-=======
->>>>>>> avn/ubitvar
             ForceUpdateLandInfo();
         }
 
@@ -1024,16 +950,11 @@ namespace OpenSim.Region.CoreModules.World.Land
         private byte[] ConvertLandBitmapToBytes()
         {
             byte[] tempConvertArr = new byte[LandBitmap.GetLength(0) * LandBitmap.GetLength(1) / 8];
-<<<<<<< HEAD
-            byte tempByte = 0;
-            int byteNum = 0;
-            int i = 0;
-=======
+
             int tempByte = 0;
             int i, byteNum = 0;
             int mask = 1;
             i = 0;
->>>>>>> avn/ubitvar
             for (int y = 0; y < LandBitmap.GetLength(1); y++)
             {
                 for (int x = 0; x < LandBitmap.GetLength(0); x++)
@@ -1070,7 +991,6 @@ namespace OpenSim.Region.CoreModules.World.Land
             //                         LogHeader, LandBitmap.GetLength(0), LandBitmap.GetLength(1));
 =======
  */
->>>>>>> avn/ubitvar
             return tempConvertArr;
         }
 

+ 0 - 12
OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs

@@ -104,7 +104,6 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap
 
                     terrainRenderer.Initialise(m_scene, m_config);
 
-<<<<<<< HEAD
                     mapbmp = new Bitmap((int)m_scene.Heightmap.Width, (int)m_scene.Heightmap.Height,
                                             System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                     //long t = System.Environment.TickCount;
@@ -113,17 +112,6 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap
                     //}
                     //t = System.Environment.TickCount - t;
                     //m_log.InfoFormat("[MAPTILE] generation of 10 maptiles needed {0} ms", t);
-=======
-                mapbmp = new Bitmap((int)m_scene.Heightmap.Width, (int)m_scene.Heightmap.Height,
-                                        System.Drawing.Imaging.PixelFormat.Format24bppRgb);
-                //long t = System.Environment.TickCount;
-                //for (int i = 0; i < 10; ++i) {
-                terrainRenderer.TerrainToBitmap(mapbmp);
-                //}
-                //t = System.Environment.TickCount - t;
-                //m_log.InfoFormat("[MAPTILE] generation of 10 maptiles needed {0} ms", t);
->>>>>>> avn/ubitvar
-
                     if (drawPrimVolume)
                     {
                         DrawObjectVolume(m_scene, mapbmp);

+ 0 - 14
OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs

@@ -270,14 +270,8 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap
 
         // the heigthfield might have some jumps in values. Rendered land is smooth, though,
         // as a slope is rendered at that place. So average 4 neighbour values to emulate that.
-<<<<<<< HEAD
         private float getHeight(ITerrainChannel hm, int x, int y) {
             if (x < (hm.Width - 1) && y < (hm.Height - 1))
-=======
-        private float getHeight(ITerrainChannel hm, int x, int y)
-        {
-            if (x < ((int)Constants.RegionSize - 1) && y < ((int)Constants.RegionSize - 1))
->>>>>>> avn/ubitvar
                 return (float)(hm[x, y] * .444 + (hm[x + 1, y] + hm[x, y + 1]) * .222 + hm[x + 1, y +1] * .112);
             else
                 return (float)hm[x, y];
@@ -291,14 +285,6 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap
 
             ITerrainChannel hm = m_scene.Heightmap;
 
-            if (mapbmp.Width != hm.Width || mapbmp.Height != hm.Height)
-            {
-                m_log.ErrorFormat("{0} TerrainToBitmap. Passed bitmap wrong dimensions. passed=<{1},{2}>, size=<{3},{4}>",
-                    LogHeader, mapbmp.Width, mapbmp.Height, hm.Width, hm.Height);
-            }
-
-            ITerrainChannel hm = m_scene.Heightmap;
-
             if (mapbmp.Width != hm.Width || mapbmp.Height != hm.Height)
             {
                 m_log.ErrorFormat("{0} TerrainToBitmap. Passed bitmap wrong dimensions. passed=<{1},{2}>, size=<{3},{4}>",

+ 0 - 4
OpenSim/Region/CoreModules/World/Terrain/FloodBrushes/NoiseArea.cs

@@ -46,10 +46,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FloodBrushes
                     if (fillArea[x, y])
                     {
                         double noise = TerrainUtil.PerlinNoise2D((double) x / map.Width, (double) y / map.Height, 8, 1.0);
-<<<<<<< HEAD
-
-=======
->>>>>>> avn/ubitvar
                         map[x, y] += noise * strength;
                     }
                 }

+ 44 - 492
OpenSim/Region/CoreModules/World/Terrain/TerrainModule.cs

@@ -75,15 +75,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         #endregion
 
         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-<<<<<<< HEAD
-=======
-        
-#pragma warning disable 414
-        private static readonly string LogHeader = "[TERRAIN MODULE]";
-#pragma warning restore 414
-
-        private readonly Commander m_commander = new Commander("terrain");
->>>>>>> avn/ubitvar
 
 #pragma warning disable 414
         private static readonly string LogHeader = "[TERRAIN MODULE]";
@@ -95,16 +86,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         private readonly Dictionary<string, ITerrainLoader> m_loaders = new Dictionary<string, ITerrainLoader>();
         private readonly Dictionary<StandardTerrainEffects, ITerrainPaintableEffect> m_painteffects =
             new Dictionary<StandardTerrainEffects, ITerrainPaintableEffect>();
-<<<<<<< HEAD
-        private Dictionary<string, ITerrainEffect> m_plugineffects;
-        private Dictionary<string, ITerrainModifier> m_modifyOperations =
-            new Dictionary<string, ITerrainModifier>();
-        private ITerrainChannel m_channel;
-        private ITerrainChannel m_revert;
-        private Scene m_scene;
-        private volatile bool m_tainted;
-        private readonly Stack<LandUndoState> m_undo = new Stack<LandUndoState>(5);
-=======
 
         private Dictionary<string, ITerrainEffect> m_plugineffects;
         private ITerrainChannel m_channel;
@@ -112,7 +93,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         private Scene m_scene;
         private volatile bool m_tainted;
 
->>>>>>> avn/ubitvar
         private String m_InitialTerrain = "pinhead-island";
 
         // If true, send terrain patch updates to clients based on their view distance
@@ -126,19 +106,12 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             private bool[,] updated;    // for each patch, whether it needs to be sent to this client
             private int updateCount;    // number of patches that need to be sent
             public ScenePresence Presence;   // a reference to the client to send to
-<<<<<<< HEAD
-            public TerrainData Terrain; // reference to the underlying terrain
-=======
->>>>>>> avn/ubitvar
+
             public PatchUpdates(TerrainData terrData, ScenePresence pPresence)
             {
                 updated = new bool[terrData.SizeX / Constants.TerrainPatchSize, terrData.SizeY / Constants.TerrainPatchSize];
                 updateCount = 0;
                 Presence = pPresence;
-<<<<<<< HEAD
-                Terrain = terrData;
-=======
->>>>>>> avn/ubitvar
                 // Initially, send all patches to the client
                 SetAll(true);
             }
@@ -147,26 +120,17 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             {
                 return (updateCount > 0);
             }
-<<<<<<< HEAD
 
-=======
->>>>>>> avn/ubitvar
             public void SetByXY(int x, int y, bool state)
             {
                 this.SetByPatch(x / Constants.TerrainPatchSize, y / Constants.TerrainPatchSize, state);
             }
-<<<<<<< HEAD
 
-=======
->>>>>>> avn/ubitvar
             public bool GetByPatch(int patchX, int patchY)
             {
                 return updated[patchX, patchY];
             }
-<<<<<<< HEAD
 
-=======
->>>>>>> avn/ubitvar
             public void SetByPatch(int patchX, int patchY, bool state)
             {
                 bool prevState = updated[patchX, patchY];
@@ -176,24 +140,17 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                     updateCount--;
                 updated[patchX, patchY] = state;
             }
-<<<<<<< HEAD
 
-            public void SetAll(bool state)
-            {
-                updateCount = 0;
-                for(int xx = 0; xx < updated.GetLength(0); xx++)
-                    for(int yy = 0; yy < updated.GetLength(1); yy++)
-=======
             public void SetAll(bool state)
             {
                 updateCount = 0;
                 for (int xx = 0; xx < updated.GetLength(0); xx++)
                     for (int yy = 0; yy < updated.GetLength(1); yy++)
->>>>>>> avn/ubitvar
                         updated[xx, yy] = state;
                 if (state)
                     updateCount = updated.GetLength(0) * updated.GetLength(1);
             }
+
             // Logically OR's the terrain data's patch taint map into this client's update map.
             public void SetAll(TerrainData terrData)
             {
@@ -206,15 +163,10 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                                 terrData.SizeX / Constants.TerrainPatchSize, terrData.SizeY / Constants.TerrainPatchSize)
                     );
                 }
-<<<<<<< HEAD
-                for(int xx = 0; xx < terrData.SizeX; xx += Constants.TerrainPatchSize)
-                {
-                    for(int yy = 0; yy < terrData.SizeY; yy += Constants.TerrainPatchSize)
-=======
+
                 for (int xx = 0; xx < terrData.SizeX; xx += Constants.TerrainPatchSize)
                 {
                     for (int yy = 0; yy < terrData.SizeY; yy += Constants.TerrainPatchSize)
->>>>>>> avn/ubitvar
                     {
                         // Only set tainted. The patch bit may be set if the patch was to be sent later.
                         if (terrData.IsTaintedAt(xx, yy, false))
@@ -275,20 +227,13 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                                                                      (int)m_scene.RegionInfo.RegionSizeY,
                                                                      (int)m_scene.RegionInfo.RegionSizeZ);
                     m_scene.Heightmap = m_channel;
-<<<<<<< HEAD
-                    UpdateRevertMap();
-=======
+
                     UpdateBakedMap();
->>>>>>> avn/ubitvar
                 }
                 else
                 {
                     m_channel = m_scene.Heightmap;
-<<<<<<< HEAD
-                    UpdateRevertMap();
-=======
                     UpdateBakedMap();
->>>>>>> avn/ubitvar
                 }
 
                 m_scene.RegisterModuleInterface<ITerrainModule>(this);
@@ -296,11 +241,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                 m_scene.EventManager.OnClientClosed += EventManager_OnClientClosed;
                 m_scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole;
                 m_scene.EventManager.OnTerrainTick += EventManager_OnTerrainTick;
-<<<<<<< HEAD
-                m_scene.EventManager.OnFrame += EventManager_OnFrame;
-=======
                 m_scene.EventManager.OnTerrainCheckUpdates += EventManager_TerrainCheckUpdates;
->>>>>>> avn/ubitvar
             }
 
             InstallDefaultEffects();
@@ -339,11 +280,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                 // remove the commands
                 m_scene.UnregisterModuleCommander(m_commander.Name);
                 // remove the event-handlers
-<<<<<<< HEAD
-                m_scene.EventManager.OnFrame -= EventManager_OnFrame;
-=======
+
                 m_scene.EventManager.OnTerrainCheckUpdates -= EventManager_TerrainCheckUpdates;
->>>>>>> avn/ubitvar
                 m_scene.EventManager.OnTerrainTick -= EventManager_OnTerrainTick;
                 m_scene.EventManager.OnPluginConsole -= EventManager_OnPluginConsole;
                 m_scene.EventManager.OnClientClosed -= EventManager_OnClientClosed;
@@ -490,11 +428,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                         {
                             ITerrainChannel channel = loader.Value.LoadStream(stream);
                             m_channel.Merge(channel, displacement, radianRotation, rotationDisplacement);
-<<<<<<< HEAD
-                            UpdateRevertMap();
-=======
                             UpdateBakedMap();
->>>>>>> avn/ubitvar
                         }
                         catch(NotImplementedException)
                         {
@@ -574,27 +508,16 @@ namespace OpenSim.Region.CoreModules.World.Terrain
 
         // Someone diddled terrain outside the normal code paths. Set the taintedness for all clients.
         // ITerrainModule.TaintTerrain()
-<<<<<<< HEAD
-        public void TaintTerrain()
-        {
-            lock(m_perClientPatchUpdates)
-            {
-                // Set the flags for all clients so the tainted patches will be sent out
-                foreach(PatchUpdates pups in m_perClientPatchUpdates.Values)
-=======
         public void TaintTerrain ()
         {
             lock (m_perClientPatchUpdates)
             {
                 // Set the flags for all clients so the tainted patches will be sent out
                 foreach (PatchUpdates pups in m_perClientPatchUpdates.Values)
->>>>>>> avn/ubitvar
                 {
                     pups.SetAll(m_scene.Heightmap.GetTerrainData());
                 }
             }
-<<<<<<< HEAD
-=======
         }
 
         // ITerrainModule.PushTerrain()
@@ -615,38 +538,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                     pups.SetAll(true);
                 }
             }
->>>>>>> avn/ubitvar
         }
 
-        // ITerrainModule.PushTerrain()
-        public void PushTerrain(IClientAPI pClient)
-        {
-            // If view distance based, set the modified patch bits and the frame event will send the updates
-            if (m_sendTerrainUpdatesByViewDistance)
-            {
-                ScenePresence presence = m_scene.GetScenePresence(pClient.AgentId);
-                if (presence != null)
-                {
-                    lock(m_perClientPatchUpdates)
-                    {
-                        PatchUpdates pups;
-                        if (!m_perClientPatchUpdates.TryGetValue(pClient.AgentId, out pups))
-                        {
-                            // There is a ScenePresence without a send patch map. Create one.
-                            pups = new PatchUpdates(m_scene.Heightmap.GetTerrainData(), presence);
-                            m_perClientPatchUpdates.Add(presence.UUID, pups);
-                        }
-                        // By setting all to modified, the next update tick will send the patches
-                        pups.SetAll(true);
-                    }
-                }
-            }
-            else
-            {
-                // The traditional way is to call into the protocol stack to send them all.
-                pClient.SendLayerData(new float[10]);
-            }
-        }
         #region Plugin Loading Methods
 
         private void LoadPlugins()
@@ -750,6 +643,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             m_floodeffects[StandardTerrainEffects.Revert] = new RevertArea(m_baked);
 
             // Terrain Modifier operations
+/*
             m_modifyOperations["min"] = new MinModifier(this);
             m_modifyOperations["max"] = new MaxModifier(this);
             m_modifyOperations["raise"] = new RaiseModifier(this);
@@ -757,7 +651,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             m_modifyOperations["fill"] = new FillModifier(this);
             m_modifyOperations["smooth"] = new SmoothModifier(this);
             m_modifyOperations["noise"] = new NoiseModifier(this);
-
+*/
             // Filesystem load/save loaders
             m_loaders[".r32"] = new RAW32();
             m_loaders[".f32"] = m_loaders[".r32"];
@@ -778,24 +672,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         /// </summary>
         public void UpdateBakedMap()
         {
-<<<<<<< HEAD
-            /*
-            int x;
-            for (x = 0; x < m_channel.Width; x++)
-            {
-                int y;
-                for (y = 0; y < m_channel.Height; y++)
-                {
-                    m_revert[x, y] = m_channel[x, y];
-                }
-            }
-             */
-            m_revert = m_channel.MakeCopy();
-=======
             m_baked = m_channel.MakeCopy();
             m_painteffects[StandardTerrainEffects.Revert] = new RevertSphere(m_baked);
             m_floodeffects[StandardTerrainEffects.Revert] = new RevertArea(m_baked);
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -822,13 +701,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                         {
                             ITerrainChannel channel = loader.Value.LoadFile(filename, offsetX, offsetY,
                                                                             fileWidth, fileHeight,
-<<<<<<< HEAD
-                                                                            (int)m_scene.RegionInfo.RegionSizeX,
-                                                                            (int)m_scene.RegionInfo.RegionSizeY);
-=======
                                                                             (int) m_scene.RegionInfo.RegionSizeX,
                                                                             (int) m_scene.RegionInfo.RegionSizeY);
->>>>>>> avn/ubitvar
                             m_scene.Heightmap = channel;
                             m_channel = channel;
                             UpdateBakedMap();
@@ -894,27 +768,11 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         }
 
         /// <summary>
-<<<<<<< HEAD
-        /// Called before processing of every simulation frame.
-=======
->>>>>>> avn/ubitvar
         /// This is used to check to see of any of the terrain is tainted and, if so, schedule
         /// updates for all the presences.
         /// This also checks to see if there are updates that need to be sent for each presence.
         /// This is where the logic is to send terrain updates to clients.
         /// </summary>
-<<<<<<< HEAD
-        private void EventManager_OnFrame()
-        {
-            TerrainData terrData = m_channel.GetTerrainData();
-
-            bool shouldTaint = false;
-            for(int x = 0; x < terrData.SizeX; x += Constants.TerrainPatchSize)
-            {
-                for(int y = 0; y < terrData.SizeY; y += Constants.TerrainPatchSize)
-                {
-                    if (terrData.IsTaintedAt(x, y))
-=======
         private void EventManager_TerrainCheckUpdates()
         {
             // this needs fixing
@@ -926,7 +784,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                 for (int y = 0; y < terrData.SizeY; y += Constants.TerrainPatchSize)
                 {
                     if (terrData.IsTaintedAt(x, y,true))
->>>>>>> avn/ubitvar
                     {
                         // Found a patch that was modified. Push this flag into the clients.
                         SendToClients(terrData, x, y);
@@ -944,10 +801,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                 m_scene.EventManager.TriggerTerrainTainted();
                 m_tainted = true;
             }
-<<<<<<< HEAD
-=======
-
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -1016,14 +869,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                 presence.ControllingClient.OnLandUndo -= client_OnLandUndo;
                 presence.ControllingClient.OnUnackedTerrain -= client_OnUnackedTerrain;
             }
-<<<<<<< HEAD
-
-            lock(m_perClientPatchUpdates)
-                m_perClientPatchUpdates.Remove(client);
-        }
-=======
->>>>>>> avn/ubitvar
-
             lock (m_perClientPatchUpdates)
                 m_perClientPatchUpdates.Remove(client);
         }
@@ -1038,21 +883,12 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             TerrainData terrData = m_channel.GetTerrainData();
 
             bool wasLimited = false;
-<<<<<<< HEAD
-            for(int x = 0; x < terrData.SizeX; x += Constants.TerrainPatchSize)
-            {
-                for(int y = 0; y < terrData.SizeY; y += Constants.TerrainPatchSize)
-                {
-                    if (terrData.IsTaintedAt(x, y, false /* clearOnTest */))
-                    {
-=======
             for (int x = 0; x < terrData.SizeX; x += Constants.TerrainPatchSize)
             {
                 for (int y = 0; y < terrData.SizeY; y += Constants.TerrainPatchSize)
                 {
                     if (terrData.IsTaintedAt(x, y, false /* clearOnTest */))
                    {
->>>>>>> avn/ubitvar
                         // If we should respect the estate settings then
                         //     fixup and height deltas that don't respect them.
                         // Note that LimitChannelChanges() modifies the TerrainChannel with the limited height values.
@@ -1075,22 +911,13 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             float maxDelta = (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
 
             // loop through the height map for this patch and compare it against
-<<<<<<< HEAD
-            // the revert map
-            for(int x = xStart; x < xStart + Constants.TerrainPatchSize; x++)
-=======
             // the baked map
             for (int x = xStart; x < xStart + Constants.TerrainPatchSize; x++)
->>>>>>> avn/ubitvar
             {
                 for(int y = yStart; y < yStart + Constants.TerrainPatchSize; y++)
                 {
                     float requestedHeight = terrData[x, y];
-<<<<<<< HEAD
-                    float bakedHeight = (float)m_revert[x, y];
-=======
                     float bakedHeight = (float)m_baked[x, y];
->>>>>>> avn/ubitvar
                     float requestedDelta = requestedHeight - bakedHeight;
 
                     if (requestedDelta > maxDelta)
@@ -1111,19 +938,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
 
         private void client_OnLandUndo(IClientAPI client)
         {
-<<<<<<< HEAD
-            lock(m_undo)
-            {
-                if (m_undo.Count > 0)
-                {
-                    LandUndoState goback = m_undo.Pop();
-                    if (goback != null)
-                        goback.PlaybackState();
-                }
-            }
-=======
-
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -1133,175 +947,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         /// <param name="x">The patch corner to send</param>
         /// <param name="y">The patch corner to send</param>
         private void SendToClients(TerrainData terrData, int x, int y)
-<<<<<<< HEAD
-        {
-            if (m_sendTerrainUpdatesByViewDistance)
-            {
-                // Add that this patch needs to be sent to the accounting for each client.
-                lock(m_perClientPatchUpdates)
-                {
-                    m_scene.ForEachScenePresence(presence =>
-                    {
-                        PatchUpdates thisClientUpdates;
-                        if (!m_perClientPatchUpdates.TryGetValue(presence.UUID, out thisClientUpdates))
-                        {
-                            // There is a ScenePresence without a send patch map. Create one.
-                            thisClientUpdates = new PatchUpdates(terrData, presence);
-                            m_perClientPatchUpdates.Add(presence.UUID, thisClientUpdates);
-                        }
-                        thisClientUpdates.SetByXY(x, y, true);
-                    }
-                    );
-                }
-            }
-            else
-            {
-                // Legacy update sending where the update is sent out as soon as noticed
-                // We know the actual terrain data that is passed is ignored so this passes a dummy heightmap.
-                //float[] heightMap = terrData.GetFloatsSerialized();
-                float[] heightMap = new float[10];
-                m_scene.ForEachClient(
-                    delegate(IClientAPI controller)
-                    {
-                        controller.SendLayerData(x / Constants.TerrainPatchSize,
-                                                 y / Constants.TerrainPatchSize,
-                                                 heightMap);
-                    }
-                );
-            }
-        }
-
-        private class PatchesToSend : IComparable<PatchesToSend>
-        {
-            public int PatchX;
-            public int PatchY;
-            public float Dist;
-
-            public PatchesToSend(int pX, int pY, float pDist)
-            {
-                PatchX = pX;
-                PatchY = pY;
-                Dist = pDist;
-            }
-
-            public int CompareTo(PatchesToSend other)
-            {
-                return Dist.CompareTo(other.Dist);
-            }
-        }
-
-        // Called each frame time to see if there are any patches to send to any of the
-        //    ScenePresences.
-        // We know this is only called if we are doing view distance patch sending so some
-        //    tests are not made.
-        // Loop through all the per-client info and send any patches necessary.
-        private void CheckSendingPatchesToClients()
-        {
-            lock(m_perClientPatchUpdates)
-            {
-                foreach(PatchUpdates pups in m_perClientPatchUpdates.Values)
-                {
-                    if (pups.HasUpdates())
-                    {
-                        // There is something that could be sent to this client.
-                        List<PatchesToSend> toSend = GetModifiedPatchesInViewDistance(pups);
-                        if (toSend.Count > 0)
-                        {
-                            // m_log.DebugFormat("{0} CheckSendingPatchesToClient: sending {1} patches to {2} in region {3}",
-                            //                     LogHeader, toSend.Count, pups.Presence.Name, m_scene.RegionInfo.RegionName);
-                            // Sort the patches to send by the distance from the presence
-                            toSend.Sort();
-                            /* old way that sent individual patches
-                            foreach (PatchesToSend pts in toSend)
-                            {
-                                pups.Presence.ControllingClient.SendLayerData(pts.PatchX, pts.PatchY, null);
-                                // presence.ControllingClient.SendLayerData(xs.ToArray(), ys.ToArray(), null, TerrainPatch.LayerType.Land);
-                            }
-                            */
-
-                            // new way that sends all patches to the protocol so they can be sent in one block
-                            int[] xPieces = new int[toSend.Count];
-                            int[] yPieces = new int[toSend.Count];
-                            float[] patchPieces = new float[toSend.Count * 2];
-                            int pieceIndex = 0;
-                            foreach(PatchesToSend pts in toSend)
-                            {
-                                patchPieces[pieceIndex++] = pts.PatchX;
-                                patchPieces[pieceIndex++] = pts.PatchY;
-                            }
-                            pups.Presence.ControllingClient.SendLayerData(-toSend.Count, 0, patchPieces);
-                        }
-                    }
-                }
-            }
-        }
-
-        // Compute a list of modified patches that are within our view distance.
-        private List<PatchesToSend> GetModifiedPatchesInViewDistance(PatchUpdates pups)
-        {
-            List<PatchesToSend> ret = new List<PatchesToSend>();
-
-            ScenePresence presence = pups.Presence;
-            if (presence == null)
-                return ret;
-
-            Vector3 presencePos = presence.AbsolutePosition;
-
-            // Before this distance check, the whole region just showed up. Adding the distance
-            //   check causes different things to happen for the current and adjacent regions.
-            //   So, to keep legacy views, if the region is legacy sized, don't do distance check.
-            bool isLegacySizedRegion = pups.Terrain.SizeX == Constants.RegionSize && pups.Terrain.SizeY == Constants.RegionSize;
-            bool shouldCheckViewDistance = m_sendTerrainUpdatesByViewDistance && !isLegacySizedRegion;
-
-            int startX = 0;
-            int endX = (int)m_scene.RegionInfo.RegionSizeX / Constants.TerrainPatchSize;
-            int startY = 0;
-            int endY = (int)m_scene.RegionInfo.RegionSizeY / Constants.TerrainPatchSize;
-
-            // The following only reduces the size of area scanned for updates. Only significant for very large varregions.
-            if (shouldCheckViewDistance)
-            {
-                // Compute the area of patches within our draw distance
-                startX = (((int)(presencePos.X - presence.DrawDistance)) / Constants.TerrainPatchSize) - 2;
-                startX = Math.Max(startX, 0);
-                startX = Math.Min(startX, (int)m_scene.RegionInfo.RegionSizeX / Constants.TerrainPatchSize);
-                startY = (((int)(presencePos.Y - presence.DrawDistance)) / Constants.TerrainPatchSize) - 2;
-                startY = Math.Max(startY, 0);
-                startY = Math.Min(startY, (int)m_scene.RegionInfo.RegionSizeY / Constants.TerrainPatchSize);
-                endX = (((int)(presencePos.X + presence.DrawDistance)) / Constants.TerrainPatchSize) + 2;
-                endX = Math.Max(endX, 0);
-                endX = Math.Min(endX, (int)m_scene.RegionInfo.RegionSizeX / Constants.TerrainPatchSize);
-                endY = (((int)(presencePos.Y + presence.DrawDistance)) / Constants.TerrainPatchSize) + 2;
-                endY = Math.Max(endY, 0);
-                endY = Math.Min(endY, (int)m_scene.RegionInfo.RegionSizeY / Constants.TerrainPatchSize);
-            }
-
-            // m_log.DebugFormat("{0} GetModifiedPatchesInViewDistance. rName={1}, ddist={2}, apos={3}, cpos={4}, isChild={5}, start=<{6},{7}>, end=<{8},{9}>",
-            //                                     LogHeader, m_scene.RegionInfo.RegionName,
-            //                                     presence.DrawDistance, presencePos, presence.CameraPosition,
-            //                                     isLegacySizeChildRegion,
-            //                                     startX, startY, endX, endY);
-            for(int x = startX; x < endX; x++)
-            {
-                for(int y = startY; y < endY; y++)
-                {
-                    //Need to make sure we don't send the same ones over and over
-                    Vector3 patchPos = new Vector3(x * Constants.TerrainPatchSize, y * Constants.TerrainPatchSize, presencePos.Z);
-                    if (pups.GetByPatch(x, y))
-                    {
-                        //Check which has less distance, camera or avatar position, both have to be done.
-                        //Its not a radius, its a diameter and we add 50 so that it doesn't look like it cuts off
-                        if (!shouldCheckViewDistance
-                            || Util.DistanceLessThan(presencePos, patchPos, presence.DrawDistance + 50)
-                            || Util.DistanceLessThan(presence.CameraPosition, patchPos, presence.DrawDistance + 50))
-                        {
-                            //They can see it, send it to them
-                            pups.SetByPatch(x, y, false);
-                            float dist = Vector3.DistanceSquared(presencePos, patchPos);
-                            ret.Add(new PatchesToSend(x, y, dist));
-                        }
-                    }
-=======
         {
             // Add that this patch needs to be sent to the accounting for each client.
             lock (m_perClientPatchUpdates)
@@ -1475,7 +1120,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                             }
                         }
                     }
->>>>>>> avn/ubitvar
                 }
             }
             return ret;
@@ -1499,24 +1143,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                     int zx = (int)(west + 0.5);
                     int zy = (int)(north + 0.5);
 
-<<<<<<< HEAD
-                    int dx;
-                    for(dx=-n; dx<=n; dx++)
-                    {
-                        int dy;
-                        for(dy=-n; dy<=n; dy++)
-                        {
-                            int x = zx + dx;
-                            int y = zy + dy;
-                            if (x >= 0 && y >= 0 && x < m_channel.Width && y < m_channel.Height)
-                            {
-                                if (m_scene.Permissions.CanTerraformLand(agentId, new Vector3(x, y, 0)))
-                                {
-                                    allowMask[x, y] = true;
-                                    allowed = true;
-                                }
-=======
-
                     int startX = zx - n;
                     if (startX < 0)
                         startX = 0;
@@ -1542,25 +1168,17 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                             {
                                 allowMask[x, y] = true;
                                 allowed = true;
->>>>>>> avn/ubitvar
                             }
                         }
                     }
                     if (allowed)
                     {
                         StoreUndoState();
-<<<<<<< HEAD
-                        m_painteffects[(StandardTerrainEffects)action].PaintEffect(
-                            m_channel, allowMask, west, south, height, size, seconds);
-
-                        //revert changes outside estate limits
-=======
                         m_painteffects[(StandardTerrainEffects) action].PaintEffect(
                             m_channel, allowMask, west, south, height, size, seconds,
                             startX, endX, startY, endY);
 
                         //block changes outside estate limits
->>>>>>> avn/ubitvar
                         if (!god)
                             EnforceEstateLimits();
                     }
@@ -1577,22 +1195,42 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                     bool[,] fillArea = new bool[m_channel.Width, m_channel.Height];
                     fillArea.Initialize();
 
-                    int x;
-                    for(x = 0; x < m_channel.Width; x++)
+                    int startX = (int)west;
+                    int startY = (int)south;
+                    int endX = (int)east;
+                    int endY = (int)north;
+
+                    if (startX < 0)
+                        startX = 0;
+                    else if (startX >= m_channel.Width)
+                        startX = m_channel.Width - 1;
+
+                    if (endX < 0)
+                        endX = 0;
+                    else if (endX >= m_channel.Width)
+                        endX = m_channel.Width - 1;
+
+                    if (startY < 0)
+                        startY = 0;
+                    else if (startY >= m_channel.Height)
+                        startY = m_channel.Height - 1;
+
+                    if (endY < 0)
+                        endY = 0;
+                    else if (endY >= m_channel.Height)
+                        endY = m_channel.Height - 1;
+
+
+                    int x, y;
+
+                    for (x = startX; x <= endX; x++)
                     {
-                        int y;
-                        for(y = 0; y < m_channel.Height; y++)
+                        for (y = startY; y <= endY; y++)
                         {
-                            if (x < east && x > west)
+                            if (m_scene.Permissions.CanTerraformLand(agentId, new Vector3(x, y, 0)))
                             {
-                                if (y < north && y > south)
-                                {
-                                    if (m_scene.Permissions.CanTerraformLand(agentId, new Vector3(x, y, 0)))
-                                    {
-                                        fillArea[x, y] = true;
-                                        allowed = true;
-                                    }
-                                }
+                                fillArea[x, y] = true;
+                                allowed = true;
                             }
                         }
                     }
@@ -1600,15 +1238,10 @@ namespace OpenSim.Region.CoreModules.World.Terrain
                     if (allowed)
                     {
                         StoreUndoState();
-<<<<<<< HEAD
-                        m_floodeffects[(StandardTerrainEffects)action].FloodEffect(m_channel, fillArea, size);
-
-                        //revert changes outside estate limits
-=======
-                        m_floodeffects[(StandardTerrainEffects) action].FloodEffect(m_channel, fillArea, size);
+                        m_floodeffects[(StandardTerrainEffects)action].FloodEffect(m_channel, fillArea, size,
+                            startX, endX, startY, endY);
 
                         //block changes outside estate limits
->>>>>>> avn/ubitvar
                         if (!god)
                             EnforceEstateLimits();
                     }
@@ -1641,52 +1274,22 @@ namespace OpenSim.Region.CoreModules.World.Terrain
 
         private void StoreUndoState()
         {
-<<<<<<< HEAD
-            lock(m_undo)
-            {
-                if (m_undo.Count > 0)
-                {
-                    LandUndoState last = m_undo.Peek();
-                    if (last != null)
-                    {
-                        if (last.Compare(m_channel))
-                            return;
-                    }
-                }
-
-                LandUndoState nUndo = new LandUndoState(this, m_channel);
-                m_undo.Push(nUndo);
-            }
-=======
->>>>>>> avn/ubitvar
         }
 
         #region Console Commands
 
         private void InterfaceLoadFile(Object[] args)
         {
-<<<<<<< HEAD
-            LoadFromFile((string)args[0]);
-=======
             LoadFromFile((string) args[0]);
->>>>>>> avn/ubitvar
         }
 
         private void InterfaceLoadTileFile(Object[] args)
         {
-<<<<<<< HEAD
-            LoadFromFile((string)args[0],
-                         (int)args[1],
-                         (int)args[2],
-                         (int)args[3],
-                         (int)args[4]);
-=======
             LoadFromFile((string) args[0],
                          (int) args[1],
                          (int) args[2],
                          (int) args[3],
                          (int) args[4]);
->>>>>>> avn/ubitvar
         }
 
         private void InterfaceSaveFile(Object[] args)
@@ -1711,15 +1314,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         private void InterfaceRevertTerrain(Object[] args)
         {
             int x, y;
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-                for(y = 0; y < m_channel.Height; y++)
-                    m_channel[x, y] = m_revert[x, y];
-=======
             for (x = 0; x < m_channel.Width; x++)
                 for (y = 0; y < m_channel.Height; y++)
                     m_channel[x, y] = m_baked[x, y];
->>>>>>> avn/ubitvar
 
         }
 
@@ -1729,15 +1326,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain
 
             if (direction.ToLower().StartsWith("y"))
             {
-<<<<<<< HEAD
-                for(int x = 0; x < m_channel.Width; x++)
-                {
-                    for(int y = 0; y < m_channel.Height / 2; y++)
-=======
                 for (int x = 0; x < m_channel.Width; x++)
                 {
                     for (int y = 0; y < m_channel.Height / 2; y++)
->>>>>>> avn/ubitvar
                     {
                         double height = m_channel[x, y];
                         double flippedHeight = m_channel[x, (int)m_channel.Height - 1 - y];
@@ -1749,15 +1340,9 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             }
             else if (direction.ToLower().StartsWith("x"))
             {
-<<<<<<< HEAD
-                for(int y = 0; y < m_channel.Height; y++)
-                {
-                    for(int x = 0; x < m_channel.Width / 2; x++)
-=======
                 for (int y = 0; y < m_channel.Height; y++)
                 {
                     for (int x = 0; x < m_channel.Width / 2; x++)
->>>>>>> avn/ubitvar
                     {
                         double height = m_channel[x, y];
                         double flippedHeight = m_channel[(int)m_channel.Width - 1 - x, y];
@@ -1837,47 +1422,29 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             double val = (double)args[0];
 
             int x, y;
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-                for(y = 0; y < m_channel.Height; y++)
-                    m_channel[x, y] += (double)args[0];
-=======
             for (x = 0; x < m_channel.Width; x++)
                 for (y = 0; y < m_channel.Height; y++)
                     m_channel[x, y] += val;
->>>>>>> avn/ubitvar
         }
 
         private void InterfaceMultiplyTerrain(Object[] args)
         {
             int x, y;
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-                for(y = 0; y < m_channel.Height; y++)
-                    m_channel[x, y] *= (double)args[0];
-=======
             double val = (double)args[0];
 
             for (x = 0; x < m_channel.Width; x++)
                 for (y = 0; y < m_channel.Height; y++)
                     m_channel[x, y] *= val;
->>>>>>> avn/ubitvar
         }
 
         private void InterfaceLowerTerrain(Object[] args)
         {
             int x, y;
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-                for(y = 0; y < m_channel.Height; y++)
-                    m_channel[x, y] -= (double)args[0];
-=======
             double val = (double)args[0];
 
             for (x = 0; x < m_channel.Width; x++)
                 for (y = 0; y < m_channel.Height; y++)
                     m_channel[x, y] -= val;
->>>>>>> avn/ubitvar
         }
 
         public void InterfaceFillTerrain(Object[] args)
@@ -1885,26 +1452,16 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             int x, y;
             double val = (double)args[0];
 
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-                for(y = 0; y < m_channel.Height; y++)
-                    m_channel[x, y] = (double)args[0];
-=======
             for (x = 0; x < m_channel.Width; x++)
                 for (y = 0; y < m_channel.Height; y++)
                     m_channel[x, y] = val;
->>>>>>> avn/ubitvar
         }
 
         private void InterfaceMinTerrain(Object[] args)
         {
             int x, y;
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-=======
             double val = (double)args[0];
             for (x = 0; x < m_channel.Width; x++)
->>>>>>> avn/ubitvar
             {
                 for(y = 0; y < m_channel.Height; y++)
                 {
@@ -1916,19 +1473,14 @@ namespace OpenSim.Region.CoreModules.World.Terrain
         private void InterfaceMaxTerrain(Object[] args)
         {
             int x, y;
-<<<<<<< HEAD
-            for(x = 0; x < m_channel.Width; x++)
-=======
             double val = (double)args[0];
             for (x = 0; x < m_channel.Width; x++)
->>>>>>> avn/ubitvar
             {
                 for(y = 0; y < m_channel.Height; y++)
                 {
                     m_channel[x, y] = Math.Min(val, m_channel[x, y]);
                 }
             }
-<<<<<<< HEAD
         }
 
         private void InterfaceShow(Object[] args)
@@ -1944,8 +1496,6 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             double height = m_channel[(int)point.X, (int)point.Y];
 
             Console.WriteLine("Terrain height at {0} is {1}", point, height);
-=======
->>>>>>> avn/ubitvar
         }
 
         private void InterfaceShowDebugStats(Object[] args)
@@ -2157,6 +1707,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
 
         public void ModifyCommand(string module, string[] cmd)
         {
+            /*
             string result;
             Scene scene = SceneManager.Instance.CurrentScene;
             if ((scene != null) && (scene != m_scene))
@@ -2196,6 +1747,7 @@ namespace OpenSim.Region.CoreModules.World.Terrain
             {
                 MainConsole.Instance.Output(result);
             }
+             */
         }
 
 #endregion

+ 0 - 8
OpenSim/Region/CoreModules/World/Terrain/Tests/TerrainTest.cs

@@ -60,12 +60,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain.Tests
             TerrainChannel map = new TerrainChannel((int)Constants.RegionSize, (int)Constants.RegionSize);
             ITerrainPaintableEffect effect = new RaiseSphere();
 
-<<<<<<< HEAD
-            effect.PaintEffect(map, allowMask, midRegion, midRegion, -1.0, 2, 6.0);
-=======
             effect.PaintEffect(map, allowMask, midRegion, midRegion, -1.0, 2, 6.0,
                 0, midRegion - 1,0, (int)Constants.RegionSize -1);
->>>>>>> avn/ubitvar
             Assert.That(map[127, midRegion] > 0.0, "Raise brush should raising value at this point (127,128).");
             Assert.That(map[125, midRegion] > 0.0, "Raise brush should raising value at this point (124,128).");
             Assert.That(map[120, midRegion] == 0.0, "Raise brush should not change value at this point (120,128).");
@@ -84,12 +80,8 @@ namespace OpenSim.Region.CoreModules.World.Terrain.Tests
             }
             effect = new LowerSphere();
 
-<<<<<<< HEAD
-            effect.PaintEffect(map, allowMask, midRegion, midRegion, -1.0, 2, 6.0);
-=======
             effect.PaintEffect(map, allowMask, midRegion, midRegion, -1.0, 2, 6.0,
                 0, (int)Constants.RegionSize -1,0, (int)Constants.RegionSize -1);
->>>>>>> avn/ubitvar
             Assert.That(map[127, midRegion] >= 0.0, "Lower should not lowering value below 0.0 at this point (127,128).");
             Assert.That(map[127, midRegion] == 0.0, "Lower brush should lowering value to 0.0 at this point (127,128).");
             Assert.That(map[125, midRegion] < 1.0, "Lower brush should lowering value at this point (124,128).");

+ 4 - 126
OpenSim/Region/CoreModules/World/Warp3DMap/TerrainSplat.cs

@@ -79,13 +79,10 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
         /// <remarks>Based on the algorithm described at http://opensimulator.org/wiki/Terrain_Splatting
         /// Note we create a 256x256 dimension texture even if the actual terrain is larger.
         /// </remarks>
-<<<<<<< HEAD
+
         public static Bitmap Splat(ITerrainChannel terrain,
                 UUID[] textureIDs, float[] startHeights, float[] heightRanges,
                 Vector3d regionPosition, IAssetService assetService, bool textureTerrain)
-=======
-        public static Bitmap Splat(ITerrainChannel terrain, UUID[] textureIDs, float[] startHeights, float[] heightRanges, Vector3d regionPosition, IAssetService assetService, bool textureTerrain)
->>>>>>> avn/ubitvar
         {
             Debug.Assert(textureIDs.Length == 4);
             Debug.Assert(startHeights.Length == 4);
@@ -133,8 +130,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
                             asset = assetService.Get(textureIDs[i].ToString());
                             if (asset != null)
                             {
-//                                    m_log.DebugFormat(
-//                                        "[TERRAIN SPLAT]: Got cached original JPEG2000 terrain texture {0} {1}", i, asset.ID);
+                                //                                    m_log.DebugFormat(
+                                //                                        "[TERRAIN SPLAT]: Got cached original JPEG2000 terrain texture {0} {1}", i, asset.ID);
 
                                 try { detailTexture[i] = (Bitmap)CSJ2K.J2kImage.FromBytes(asset.Data); }
                                 catch (Exception ex)
@@ -144,7 +141,7 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
                             }
 
                             if (detailTexture[i] != null)
-                            {    
+                            {
                                 // Make sure this texture is the correct size, otherwise resize
                                 if (detailTexture[i].Width != 256 || detailTexture[i].Height != 256)
                                 {
@@ -199,74 +196,12 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
                         using (SolidBrush brush = new SolidBrush(DEFAULT_TERRAIN_COLOR[i]))
                             gfx.FillRectangle(brush, 0, 0, 256, 256);
                     }
-                    else
-                    {
-                        if (detailTexture[i].Width != 256 || detailTexture[i].Height != 256)
-                        {
-                            detailTexture[i] = ResizeBitmap(detailTexture[i], 256, 256);
-                        }
-                    }
                 }
-<<<<<<< HEAD
                 else
-=======
-    
-                #region Layer Map
-    
-                float[,] layermap = new float[256 , 256];
-
-                int xFactor = terrain.Width / 256;
-                int yFactor = terrain.Height / 256;
-    
-                for (int y = 0; y < 256; y++)
->>>>>>> avn/ubitvar
                 {
                     if (detailTexture[i].Width != 256 || detailTexture[i].Height != 256)
                     {
-<<<<<<< HEAD
                         detailTexture[i] = ResizeBitmap(detailTexture[i], 256, 256);
-=======
-                        float height = (float)terrain[x * xFactor, y * yFactor];
-    
-                        float pctX = (float)x / 255f;
-                        float pctY = (float)y / 255f;
-    
-                        // Use bilinear interpolation between the four corners of start height and 
-                        // height range to select the current values at this position
-                        float startHeight = ImageUtils.Bilinear(
-                            startHeights[0],
-                            startHeights[2],
-                            startHeights[1],
-                            startHeights[3],
-                            pctX, pctY);
-                        startHeight = Utils.Clamp(startHeight, 0f, 255f);
-    
-                        float heightRange = ImageUtils.Bilinear(
-                            heightRanges[0],
-                            heightRanges[2],
-                            heightRanges[1],
-                            heightRanges[3],
-                            pctX, pctY);
-                        heightRange = Utils.Clamp(heightRange, 0f, 255f);
-    
-                        // Generate two frequencies of perlin noise based on our global position
-                        // The magic values were taken from http://opensimulator.org/wiki/Terrain_Splatting
-                        Vector3 vec = new Vector3
-                        (
-                            ((float)regionPosition.X + (x * xFactor)) * 0.20319f,
-                            ((float)regionPosition.Y + (y * yFactor)) * 0.20319f,
-                            height * 0.25f
-                        );
-    
-                        float lowFreq = Perlin.noise2(vec.X * 0.222222f, vec.Y * 0.222222f) * 6.5f;
-                        float highFreq = Perlin.turbulence2(vec.X, vec.Y, 2f) * 2.25f;
-                        float noise = (lowFreq + highFreq) * 2f;
-    
-                        // Combine the current height, generated noise, start height, and height range parameters, then scale all of it 
-                        float layer = ((height + noise - startHeight) / heightRange) * 4f;
-                        if (Single.IsNaN(layer)) layer = 0f;
-                        layermap[x,y] = Utils.Clamp(layer, 0f, 3f);
->>>>>>> avn/ubitvar
                     }
                 }
             }
@@ -286,7 +221,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             {
                 for (int x = 0; x < 256; x++)
                 {
-<<<<<<< HEAD
                     float height = (float)terrain[x * xFactor, y * yFactor];
 
                     float pctX = (float)x / 255f;
@@ -328,58 +262,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
                     if (Single.IsNaN(layer))
                         layer = 0f;
                     layermap[x, y] = Utils.Clamp(layer, 0f, 3f);
-=======
-                    // Get handles to all of the texture data arrays
-                    BitmapData[] datas = new BitmapData[]
-                    {
-                        detailTexture[0].LockBits(new Rectangle(0, 0, 256, 256), ImageLockMode.ReadOnly, detailTexture[0].PixelFormat),
-                        detailTexture[1].LockBits(new Rectangle(0, 0, 256, 256), ImageLockMode.ReadOnly, detailTexture[1].PixelFormat),
-                        detailTexture[2].LockBits(new Rectangle(0, 0, 256, 256), ImageLockMode.ReadOnly, detailTexture[2].PixelFormat),
-                        detailTexture[3].LockBits(new Rectangle(0, 0, 256, 256), ImageLockMode.ReadOnly, detailTexture[3].PixelFormat)
-                    };
-    
-                    int[] comps = new int[]
-                    {
-                        (datas[0].PixelFormat == PixelFormat.Format32bppArgb) ? 4 : 3,
-                        (datas[1].PixelFormat == PixelFormat.Format32bppArgb) ? 4 : 3,
-                        (datas[2].PixelFormat == PixelFormat.Format32bppArgb) ? 4 : 3,
-                        (datas[3].PixelFormat == PixelFormat.Format32bppArgb) ? 4 : 3
-                    };
-    
-                    for (int y = 0; y < 256; y++)
-                    {
-                        for (int x = 0; x < 256; x++)
-                        {
-                            float layer = layermap[x, y];
-    
-                            // Select two textures
-                            int l0 = (int)Math.Floor(layer);
-                            int l1 = Math.Min(l0 + 1, 3);
-    
-                            byte* ptrA = (byte*)datas[l0].Scan0 + y * datas[l0].Stride + x * comps[l0];
-                            byte* ptrB = (byte*)datas[l1].Scan0 + y * datas[l1].Stride + x * comps[l1];
-                            byte* ptrO = (byte*)outputData.Scan0 + y * outputData.Stride + x * 3;
-    
-                            float aB = *(ptrA + 0);
-                            float aG = *(ptrA + 1);
-                            float aR = *(ptrA + 2);
-    
-                            float bB = *(ptrB + 0);
-                            float bG = *(ptrB + 1);
-                            float bR = *(ptrB + 2);
-    
-                            float layerDiff = layer - l0;
-    
-                            // Interpolate between the two selected textures
-                            *(ptrO + 0) = (byte)Math.Floor(aB + layerDiff * (bB - aB));
-                            *(ptrO + 1) = (byte)Math.Floor(aG + layerDiff * (bG - aG));
-                            *(ptrO + 2) = (byte)Math.Floor(aR + layerDiff * (bR - aR));
-                        }
-                    }
-    
-                    for (int i = 0; i < 4; i++)
-                        detailTexture[i].UnlockBits(datas[i]);
->>>>>>> avn/ubitvar
                 }
             }
 
@@ -471,10 +353,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             b.Dispose();
             return result;
         }
-<<<<<<< HEAD
-
-=======
->>>>>>> avn/ubitvar
         public static Bitmap SplatSimple(float[] heightmap)
         {
             const float BASE_HSV_H = 93f / 360f;

+ 0 - 34
OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs

@@ -156,13 +156,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
 
         public Bitmap CreateMapTile()
         {
-<<<<<<< HEAD
-            // Vector3 camPos = new Vector3(127.5f, 127.5f, 221.7025033688163f);
-            // Camera above the middle of the region
-            Vector3 camPos = new Vector3(
-                            m_scene.RegionInfo.RegionSizeX/2 - 0.5f,
-                            m_scene.RegionInfo.RegionSizeY/2 - 0.5f,
-=======
             /* this must be on all map, not just its image
             if ((DateTime.Now - lastImageTime).TotalSeconds < 3600)
             {
@@ -179,16 +172,10 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             Vector3 camPos = new Vector3(
                             m_scene.RegionInfo.RegionSizeX / 2 - 0.5f,
                             m_scene.RegionInfo.RegionSizeY / 2 - 0.5f,
->>>>>>> avn/ubitvar
                             221.7025033688163f);
             // Viewport viewing down onto the region
             Viewport viewport = new Viewport(camPos, -Vector3.UnitZ, 1024f, 0.1f,
                         (int)m_scene.RegionInfo.RegionSizeX, (int)m_scene.RegionInfo.RegionSizeY,
-<<<<<<< HEAD
-                        (float)m_scene.RegionInfo.RegionSizeX, (float)m_scene.RegionInfo.RegionSizeY );
-            // Fill the viewport and return the image
-            return CreateMapTile(viewport, false);
-=======
                         (float)m_scene.RegionInfo.RegionSizeX, (float)m_scene.RegionInfo.RegionSizeY);
 
             Bitmap tile = CreateMapTile(viewport, false);
@@ -199,7 +186,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             lastImageTime = DateTime.Now;
             return (Bitmap)lastImage.Clone();
  */
->>>>>>> avn/ubitvar
         }
 
         public Bitmap CreateViewImage(Vector3 camPos, Vector3 camDir, float fov, int width, int height, bool useTextures)
@@ -315,15 +301,9 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             float waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
 
             renderer.AddPlane("Water", m_scene.RegionInfo.RegionSizeX * 0.5f);
-<<<<<<< HEAD
-            renderer.Scene.sceneobject("Water").setPos(m_scene.RegionInfo.RegionSizeX/2 - 0.5f,
-                                                       waterHeight,
-                                                       m_scene.RegionInfo.RegionSizeY/2 - 0.5f );
-=======
             renderer.Scene.sceneobject("Water").setPos(m_scene.RegionInfo.RegionSizeX / 2 - 0.5f,
                                                        waterHeight,
                                                        m_scene.RegionInfo.RegionSizeY / 2 - 0.5f);
->>>>>>> avn/ubitvar
 
             warp_Material waterColorMaterial = new warp_Material(ConvertColor(WATER_COLOR));
 			waterColorMaterial.setReflectivity(0);  // match water color with standard map module thanks lkalif
@@ -352,11 +332,7 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
                     warp_Vector pos = ConvertVector(x, y, (float)terrain[(int)x, (int)y]);
                     obj.addVertex(new warp_Vertex(pos,
                         x / (float)m_scene.RegionInfo.RegionSizeX,
-<<<<<<< HEAD
-                        (((float)m_scene.RegionInfo.RegionSizeY) - y) / m_scene.RegionInfo.RegionSizeY) );
-=======
                         (((float)m_scene.RegionInfo.RegionSizeY) - y) / m_scene.RegionInfo.RegionSizeY));
->>>>>>> avn/ubitvar
                 }
             }
 
@@ -424,12 +400,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             warp_Texture texture;
             using (
                 Bitmap image
-<<<<<<< HEAD
-                    = TerrainSplat.Splat(terrain, textureIDs, startHeights, heightRanges,
-=======
                     = TerrainSplat.Splat(
                         terrain, textureIDs, startHeights, heightRanges,
->>>>>>> avn/ubitvar
                         new Vector3d(globalX, globalY, 0.0), m_scene.AssetService, textureTerrain))
             {
                 texture = new warp_Texture(image);
@@ -711,12 +683,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap
             return new warp_Vector(x, z, y);
         }
 
-        // Note: axis change.
-        private static warp_Vector ConvertVector(float x, float y, float z)
-        {
-            return new warp_Vector(x, z, y);
-        }
-
         private static warp_Vector ConvertVector(Vector3 vector)
         {
             return new warp_Vector(vector.X, vector.Z, vector.Y);

+ 0 - 74
OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs

@@ -141,12 +141,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
 
         private void OnMapNameRequest(IClientAPI remoteClient, string mapName, uint flags)
         {
-<<<<<<< HEAD
-            List<MapBlockData> blocks = new List<MapBlockData>();
-            if (mapName.Length < 3 || (mapName.EndsWith("#") && mapName.Length < 4))
-=======
             Util.FireAndForget(x =>
->>>>>>> avn/ubitvar
             {
                 List<MapBlockData> blocks = new List<MapBlockData>();
                 if (mapName.Length < 3 || (mapName.EndsWith("#") && mapName.Length < 4))
@@ -232,74 +227,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 // they have different values depending on different viewers, apparently
                 remoteClient.SendMapBlock(blocks, flags);
 
-<<<<<<< HEAD
-            List<GridRegion> regionInfos = m_scene.GridService.GetRegionsByName(m_scene.RegionInfo.ScopeID, mapName, 20);
-            
-            string mapNameOrig = mapName;
-            if (regionInfos.Count == 0)
-            {
-                // Hack to get around the fact that ll V3 now drops the port from the
-                // map name. See https://jira.secondlife.com/browse/VWR-28570
-                //
-                // Caller, use this magic form instead:
-                // secondlife://http|!!mygrid.com|8002|Region+Name/128/128
-                // or url encode if possible.
-                // the hacks we do with this viewer...
-                //
-                if (mapName.Contains("|"))
-                    mapName = mapName.Replace('|', ':');
-                if (mapName.Contains("+"))
-                    mapName = mapName.Replace('+', ' ');
-                if (mapName.Contains("!"))
-                    mapName = mapName.Replace('!', '/');
-                
-                if (mapName != mapNameOrig)
-                    regionInfos = m_scene.GridService.GetRegionsByName(m_scene.RegionInfo.ScopeID, mapName, 20);
-            }
-            
-            m_log.DebugFormat("[MAPSEARCHMODULE]: search {0} returned {1} regions. Flags={2}", mapName, regionInfos.Count, flags);
-            
-            if (regionInfos.Count > 0)
-            {
-                foreach (GridRegion info in regionInfos)
-                {
-                    if ((flags & 2) == 2) // V2 sends this
-                    {
-                        List<MapBlockData> datas = WorldMap.Map2BlockFromGridRegion(info, flags);
-                        // ugh! V2-3 is very sensitive about the result being
-                        // exactly the same as the requested name
-                        if (regionInfos.Count == 1 && (mapName != mapNameOrig))
-                            datas.ForEach(d => d.Name = mapNameOrig);
-
-                        blocks.AddRange(datas);
-                    }
-                    else
-                    {
-                        MapBlockData data = WorldMap.MapBlockFromGridRegion(info, flags);
-                        blocks.Add(data);
-                    }
-                }
-            }
-
-            // final block, closing the search result
-            AddFinalBlock(blocks);
-
-            // flags are agent flags sent from the viewer.
-            // they have different values depending on different viewers, apparently
-            remoteClient.SendMapBlock(blocks, flags);
-
-            // send extra user messages for V3
-            // because the UI is very confusing
-            // while we don't fix the hard-coded urls
-            if (flags == 2) 
-            {
-                if (regionInfos.Count == 0)
-                    remoteClient.SendAlertMessage("No regions found with that name.");
-                // this seems unnecessary because found regions will show up in the search results
-                //else if (regionInfos.Count == 1)
-                //    remoteClient.SendAlertMessage("Region found!");
-            }
-=======
                 // send extra user messages for V3
                 // because the UI is very confusing
                 // while we don't fix the hard-coded urls
@@ -311,7 +238,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
 //                        remoteClient.SendAgentAlertMessage("Region found!", false);
                 }
             });
->>>>>>> avn/ubitvar
         }
 
         private void AddFinalBlock(List<MapBlockData> blocks)

+ 5 - 366
OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs

@@ -68,12 +68,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
         private static readonly UUID STOP_UUID = UUID.Random();
         private static readonly string m_mapLayerPath = "0001/";
 
-<<<<<<< HEAD
-        private IMapImageGenerator m_mapImageGenerator;
-        private IMapImageUploadModule m_mapImageServiceModule;
-
-        private OpenSim.Framework.BlockingQueue<MapRequestState> requests = new OpenSim.Framework.BlockingQueue<MapRequestState>();
-=======
         private ManualResetEvent queueEvent = new ManualResetEvent(false);
         private Queue<MapRequestState> requests = new Queue<MapRequestState>();
 
@@ -82,7 +76,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
 
         private IMapImageGenerator m_mapImageGenerator;
         private IMapImageUploadModule m_mapImageServiceModule;
->>>>>>> avn/ubitvar
 
         protected Scene m_scene;
         private List<MapBlockData> cachedMapBlocks = new List<MapBlockData>();
@@ -154,14 +147,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             if (!m_Enabled)
                 return;
 
-<<<<<<< HEAD
-            m_ServiceThrottle = scene.RequestModuleInterface<IServiceThrottleModule>();
-=======
-            m_mapImageGenerator = m_scene.RequestModuleInterface<IMapImageGenerator>();
-            m_mapImageServiceModule = m_scene.RequestModuleInterface<IMapImageUploadModule>();
-        }
->>>>>>> avn/ubitvar
-
             m_mapImageGenerator = m_scene.RequestModuleInterface<IMapImageGenerator>();
             m_mapImageServiceModule = m_scene.RequestModuleInterface<IMapImageUploadModule>();
         }
@@ -275,56 +260,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             // 6/8/2011 -- I'm adding an explicit 2048 check, so that we never forget that there is
             // a hack here, and so that regions below 4096 don't get spammed with unnecessary map blocks.
 
-<<<<<<< HEAD
-            if (m_scene.RegionInfo.RegionLocX >= 2048 || m_scene.RegionInfo.RegionLocY >= 2048)
-            {
-                ScenePresence avatarPresence = null;
-
-                m_scene.TryGetScenePresence(agentID, out avatarPresence);
-
-                if (avatarPresence != null)
-                {
-                    bool lookup = false;
-
-                    lock (cachedMapBlocks)
-                    {
-                        if (cachedMapBlocks.Count > 0 && ((cachedTime + 1800) > Util.UnixTimeSinceEpoch()))
-                        {
-                            List<MapBlockData> mapBlocks;
-
-                            mapBlocks = cachedMapBlocks;
-                            avatarPresence.ControllingClient.SendMapBlock(mapBlocks, 0);
-                        }
-                        else
-                        {
-                            lookup = true;
-                        }
-                    }
-                    if (lookup)
-                    {
-                        List<MapBlockData> mapBlocks = new List<MapBlockData>(); ;
-
-                        // Get regions that are within 8 regions of here
-                        List<GridRegion> regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
-                                    (int)Util.RegionToWorldLoc(m_scene.RegionInfo.RegionLocX - 8),
-                                    (int)Util.RegionToWorldLoc(m_scene.RegionInfo.RegionLocX + 8),
-                                    (int)Util.RegionToWorldLoc(m_scene.RegionInfo.RegionLocY - 8),
-                                    (int)Util.RegionToWorldLoc(m_scene.RegionInfo.RegionLocY + 8) );
-                        foreach (GridRegion r in regions)
-                        {
-                            MapBlockData block = MapBlockFromGridRegion(r, 0);
-                            mapBlocks.Add(block);
-                        }
-                        avatarPresence.ControllingClient.SendMapBlock(mapBlocks, 0);
-
-                        lock (cachedMapBlocks)
-                            cachedMapBlocks = mapBlocks;
-
-                        cachedTime = Util.UnixTimeSinceEpoch();
-                    }
-                }
-            }
-=======
             //if (m_scene.RegionInfo.RegionLocX >= 2048 || m_scene.RegionInfo.RegionLocY >= 2048)
             //{
             //    ScenePresence avatarPresence = null;
@@ -373,7 +308,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             //        }
             //    }
             //}
->>>>>>> avn/ubitvar
 
             LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
             mapResponse.LayerData.Array.Add(GetOSDMapLayerResponse());
@@ -459,7 +393,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 ThreadPriority.BelowNormal,
                 true,
                 true);
-            Watchdog.StartThread(
+            WorkManager.StartThread(
                 MapBlockSendThread,
                 string.Format("MapBlockSendThread ({0})", m_scene.RegionInfo.RegionName),
                 ThreadPriority.BelowNormal,
@@ -516,12 +450,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             uint xstart = 0;
             uint ystart = 0;
             Util.RegionHandleToWorldLoc(m_scene.RegionInfo.RegionHandle, out xstart, out ystart);
-<<<<<<< HEAD
-            if (itemtype == (int)GridItemType.AgentLocations)
-=======
 
-            if (itemtype == 6) // Service 6 right now (MAP_ITEM_AGENTS_LOCATION; green dots)
->>>>>>> avn/ubitvar
+            if (itemtype == (int)GridItemType.AgentLocations) // Service 6 right now (MAP_ITEM_AGENTS_LOCATION; green dots)
             {
                 if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle)
                 {
@@ -531,22 +461,12 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                     mapItemReply mapitem = new mapItemReply();
                     if (m_scene.GetRootAgentCount() <= 1)
                     {
-<<<<<<< HEAD
                         mapitem = new mapItemReply(
                                         xstart + 1,
                                         ystart + 1,
                                         UUID.Zero,
                                         Util.Md5Hash(m_scene.RegionInfo.RegionName + tc.ToString()),
                                         0, 0);
-=======
-                        mapitem = new mapItemReply();
-                        mapitem.x = xstart + 1;
-                        mapitem.y = ystart + 1;
-                        mapitem.id = UUID.Zero;
-                        mapitem.name = Util.Md5Hash(m_scene.RegionInfo.RegionName + tc.ToString());
-                        mapitem.Extra = 0;
-                        mapitem.Extra2 = 0;
->>>>>>> avn/ubitvar
                         mapitems.Add(mapitem);
                     }
                     else
@@ -556,22 +476,12 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                             // Don't send a green dot for yourself
                             if (sp.UUID != remoteClient.AgentId)
                             {
-<<<<<<< HEAD
                                 mapitem = new mapItemReply(
                                         xstart + (uint)sp.AbsolutePosition.X,
                                         ystart + (uint)sp.AbsolutePosition.Y,
                                         UUID.Zero,
                                         Util.Md5Hash(m_scene.RegionInfo.RegionName + tc.ToString()),
                                         1, 0);
-=======
-                                mapitem = new mapItemReply();
-                                mapitem.x = xstart + (uint)sp.AbsolutePosition.X;
-                                mapitem.y = ystart + (uint)sp.AbsolutePosition.Y;
-                                mapitem.id = UUID.Zero;
-                                mapitem.name = Util.Md5Hash(m_scene.RegionInfo.RegionName + tc.ToString());
-                                mapitem.Extra = 1;
-                                mapitem.Extra2 = 0;
->>>>>>> avn/ubitvar
                                 mapitems.Add(mapitem);
                             }
                         });
@@ -615,8 +525,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                                 Vector3 max = parcel.AABBMax;
                                 float x = (min.X+max.X)/2;
                                 float y = (min.Y+max.Y)/2;
-
-<<<<<<< HEAD
                                 mapitem = new mapItemReply(
                                                 xstart + (uint)x,
                                                 ystart + (uint)y,
@@ -625,16 +533,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                                                 parcel.Area,
                                                 parcel.SalePrice
                                 );
-=======
-                                mapitem = new mapItemReply();
-                                mapitem.x = xstart + (uint)x;
-                                mapitem.y = ystart +(uint)y;
-                                // mapitem.z = (uint)m_scene.GetGroundHeight(x,y);
-                                mapitem.id = parcel.GlobalID;
-                                mapitem.name = parcel.Name;
-                                mapitem.Extra = parcel.Area;
-                                mapitem.Extra2 = parcel.SalePrice;
->>>>>>> avn/ubitvar
                                 mapitems.Add(mapitem);
                             }
                         }
@@ -659,7 +557,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                     SceneObjectGroup sog = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject);
                     if (sog != null)
                     {
-<<<<<<< HEAD
                         mapitem = new mapItemReply(
                                             xstart + (uint)sog.AbsolutePosition.X,
                                             ystart + (uint)sog.AbsolutePosition.Y,
@@ -668,15 +565,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                                             0,  // color (not used)
                                             0   // 0 = telehub / 1 = infohub
                         );
-=======
-                        mapitem = new mapItemReply();
-                        mapitem.x = xstart + (uint)sog.AbsolutePosition.X;
-                        mapitem.y = ystart + (uint)sog.AbsolutePosition.Y;
-                        mapitem.id = UUID.Zero;
-                        mapitem.name = sog.Name;
-                        mapitem.Extra = 0; // color (not used)
-                        mapitem.Extra2 = 0; // 0 = telehub / 1 = infohub
->>>>>>> avn/ubitvar
                         mapitems.Add(mapitem);
 
                         remoteClient.SendMapItemReply(mapitems.ToArray(), itemtype, flags);
@@ -763,126 +651,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
         {
             lock (requests)
             {
-<<<<<<< HEAD
-                if (st.agentID != UUID.Zero)
-                {
-                    bool dorequest = true;
-                    lock (m_rootAgents)
-                    {
-                        if (!m_rootAgents.Contains(st.agentID))
-                            dorequest = false;
-                    }
-
-                    if (dorequest && !m_blacklistedregions.ContainsKey(st.regionhandle))
-                    {
-                        if (nAsyncRequests >= MAX_ASYNC_REQUESTS) // hit the break
-                        {
-                            // AH!!! Recursive !
-                            // Put this request back in the queue and return
-                            EnqueueMapItemRequest(st);
-                            return;
-                        }
-
-                        RequestMapItemsDelegate d = RequestMapItemsAsync;
-                        d.BeginInvoke(st.agentID, st.flags, st.EstateID, st.godlike, st.itemtype, st.regionhandle, RequestMapItemsCompleted, null);
-                        //OSDMap response = RequestMapItemsAsync(st.agentID, st.flags, st.EstateID, st.godlike, st.itemtype, st.regionhandle);
-                        //RequestMapItemsCompleted(response);
-                        Interlocked.Increment(ref nAsyncRequests);
-                    }
-                }
-            });
-        }
-
-        /// <summary>
-        /// Sends the mapitem response to the IClientAPI
-        /// </summary>
-        /// <param name="response">The OSDMap Response for the mapitem</param>
-        private void RequestMapItemsCompleted(IAsyncResult iar)
-        {
-            AsyncResult result = (AsyncResult)iar;
-            RequestMapItemsDelegate icon = (RequestMapItemsDelegate)result.AsyncDelegate;
-
-            OSDMap response = (OSDMap)icon.EndInvoke(iar);
-
-            Interlocked.Decrement(ref nAsyncRequests);
-
-            if (!response.ContainsKey("requestID"))
-                return;
-
-            UUID requestID = response["requestID"].AsUUID();
-
-            if (requestID != UUID.Zero)
-            {
-                MapRequestState mrs = new MapRequestState();
-                mrs.agentID = UUID.Zero;
-                lock (m_openRequests)
-                {
-                    if (m_openRequests.ContainsKey(requestID))
-                    {
-                        mrs = m_openRequests[requestID];
-                        m_openRequests.Remove(requestID);
-                    }
-                }
-
-                if (mrs.agentID != UUID.Zero)
-                {
-                    ScenePresence av = null;
-                    m_scene.TryGetScenePresence(mrs.agentID, out av);
-                    if (av != null)
-                    {
-                        if (response.ContainsKey(mrs.itemtype.ToString()))
-                        {
-                            List<mapItemReply> returnitems = new List<mapItemReply>();
-                            OSDArray itemarray = (OSDArray)response[mrs.itemtype.ToString()];
-                            for (int i = 0; i < itemarray.Count; i++)
-                            {
-                                OSDMap mapitem = (OSDMap)itemarray[i];
-                                mapItemReply mi = new mapItemReply();
-                                mi.FromOSD(mapitem);
-                                returnitems.Add(mi);
-                            }
-                            av.ControllingClient.SendMapItemReply(returnitems.ToArray(), mrs.itemtype, mrs.flags);
-                        }
-
-                        // Service 7 (MAP_ITEM_LAND_FOR_SALE)
-                        uint itemtype = (uint)GridItemType.LandForSale;
-
-                        if (response.ContainsKey(itemtype.ToString()))
-                        {
-                            List<mapItemReply> returnitems = new List<mapItemReply>();
-                            OSDArray itemarray = (OSDArray)response[itemtype.ToString()];
-                            for (int i = 0; i < itemarray.Count; i++)
-                            {
-                                OSDMap mapitem = (OSDMap)itemarray[i];
-                                mapItemReply mi = new mapItemReply();
-                                mi.FromOSD(mapitem);
-                                returnitems.Add(mi);
-                            }
-                            av.ControllingClient.SendMapItemReply(returnitems.ToArray(), itemtype, mrs.flags);
-                        }
-
-                        // Service 1 (MAP_ITEM_TELEHUB)
-                        itemtype = (uint)GridItemType.Telehub;
-
-                        if (response.ContainsKey(itemtype.ToString()))
-                        {
-                            List<mapItemReply> returnitems = new List<mapItemReply>();
-                            OSDArray itemarray = (OSDArray)response[itemtype.ToString()];
-                            for (int i = 0; i < itemarray.Count; i++)
-                            {
-                                OSDMap mapitem = (OSDMap)itemarray[i];
-                                mapItemReply mi = new mapItemReply();
-                                mi.FromOSD(mapitem);
-                                returnitems.Add(mi);
-                            }
-                            av.ControllingClient.SendMapItemReply(returnitems.ToArray(), itemtype, mrs.flags);
-                        }
-                    }
-                }
-=======
                 queueEvent.Set();
                 requests.Enqueue(state);
->>>>>>> avn/ubitvar
+
             }
         }
 
@@ -1228,11 +999,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
         /// <param name="maxY"></param>
         public void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag)
         {
-<<<<<<< HEAD
-=======
             m_log.DebugFormat("[WoldMapModule] RequestMapBlocks {0}={1}={2}={3} {4}", minX, minY, maxX, maxY, flag);
 /*  this flag does not seem to mean what his says
->>>>>>> avn/ubitvar
             if ((flag & 0x10000) != 0)  // user clicked on qthe map a tile that isn't visible
             {
                 List<MapBlockData> response = new List<MapBlockData>();
@@ -1241,34 +1009,15 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 // on an unloaded square.
                 // But make sure: Look whether the one we requested is in there
                 List<GridRegion> regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
-<<<<<<< HEAD
-                                    (int)Util.RegionToWorldLoc((uint)minX), (int)Util.RegionToWorldLoc((uint)maxX),
-                                    (int)Util.RegionToWorldLoc((uint)minY), (int)Util.RegionToWorldLoc((uint)maxY) );
-
-                m_log.DebugFormat("[WORLD MAP MODULE] RequestMapBlocks min=<{0},{1}>, max=<{2},{3}>, flag={4}, cntFound={5}",
-                                            minX, minY, maxX, maxY, flag.ToString("X"), regions.Count);
-=======
                     (int)Util.RegionToWorldLoc((uint)minX),
                     (int)Util.RegionToWorldLoc((uint)maxX),
                     (int)Util.RegionToWorldLoc((uint)minY),
                     (int)Util.RegionToWorldLoc((uint)maxY) );
  
->>>>>>> avn/ubitvar
                 if (regions != null)
                 {
                     foreach (GridRegion r in regions)
                     {
-<<<<<<< HEAD
-                        if (r.RegionLocX == Util.RegionToWorldLoc((uint)minX)
-                            && r.RegionLocY == Util.RegionToWorldLoc((uint)minY) )
-                        {
-                            // found it => add it to response
-                            // Version 2 viewers can handle the larger regions
-                            if ((flag & 2) == 2)
-                                response.AddRange(Map2BlockFromGridRegion(r, flag));
-                            else
-                                response.Add(MapBlockFromGridRegion(r, flag));
-=======
                         if (r.RegionLocX == Util.RegionToWorldLoc((uint)minX) &&
                             r.RegionLocY == Util.RegionToWorldLoc((uint)minY))
                         {
@@ -1281,7 +1030,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                                 MapBlockFromGridRegion(block, r, flag);
                                 response.Add(block);
                             }
->>>>>>> avn/ubitvar
                             break;
                         }
                     }
@@ -1373,19 +1121,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             List<MapBlockData> allBlocks = new List<MapBlockData>();
             List<MapBlockData> mapBlocks = new List<MapBlockData>();
             List<GridRegion> regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
-<<<<<<< HEAD
-                        (int)Util.RegionToWorldLoc((uint)(minX - 4)), (int)Util.RegionToWorldLoc((uint)(maxX + 4)),
-                        (int)Util.RegionToWorldLoc((uint)(minY - 4)), (int)Util.RegionToWorldLoc((uint)(maxY + 4)) );
-            //m_log.DebugFormat("{0} GetAndSendBlocks. min=<{1},{2}>, max=<{3},{4}>, cntFound={5}",
-            //                            LogHeader, minX, minY, maxX, maxY, regions.Count);
-            foreach (GridRegion r in regions)
-            {
-                // Version 2 viewers can handle the larger regions
-                if ((flag & 2) == 2)
-                    mapBlocks.AddRange(Map2BlockFromGridRegion(r, flag));
-                else
-                    mapBlocks.Add(MapBlockFromGridRegion(r, flag));
-=======
                 minX * (int)Constants.RegionSize,
                 maxX * (int)Constants.RegionSize,
                 minY * (int)Constants.RegionSize,
@@ -1407,7 +1142,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 mapBlocks.Add(block);
                 remoteClient.SendMapBlock(mapBlocks, flag & 0xffff);
                 return allBlocks;
->>>>>>> avn/ubitvar
             }
 
             foreach (GridRegion r in regions)
@@ -1438,15 +1172,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             return allBlocks;
         }
 
-<<<<<<< HEAD
-        // Fill a passed MapBlockData from a GridRegion
-        public MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag)
-=======
         public void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag)
->>>>>>> avn/ubitvar
         {
-            MapBlockData block = new MapBlockData();
-
             block.Access = r.Access;
             switch (flag & 0xffff)
             {
@@ -1461,14 +1188,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                     break;
             }
             block.Name = r.RegionName;
-<<<<<<< HEAD
-            block.X = (ushort)Util.WorldToRegionLoc((uint)r.RegionLocX);
-            block.Y = (ushort)Util.WorldToRegionLoc((uint)r.RegionLocY);
-            block.SizeX = (ushort) r.RegionSizeX;
-            block.SizeY = (ushort) r.RegionSizeY;
-
-            return block;
-=======
             block.X = (ushort)(r.RegionLocX / Constants.RegionSize);
             block.Y = (ushort)(r.RegionLocY / Constants.RegionSize);
             block.SizeX = (ushort)r.RegionSizeX;
@@ -1508,45 +1227,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 blocks.Add(block);
             }
             return blocks;
->>>>>>> avn/ubitvar
         }
 
-        public List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag)
-        {
-            List<MapBlockData> blocks = new List<MapBlockData>();
-            MapBlockData block = new MapBlockData();
-            if (r == null)
-            {
-                block.Access = (byte)SimAccess.Down;
-                block.MapImageId = UUID.Zero;
-                blocks.Add(block);
-            }
-            else
-            {
-                block.Access = r.Access;
-                switch (flag & 0xffff)
-                {
-                    case 0:
-                        block.MapImageId = r.TerrainImage;
-                        break;
-                    case 2:
-                        block.MapImageId = r.ParcelImage;
-                        break;
-                    default:
-                        block.MapImageId = UUID.Zero;
-                        break;
-                }
-                block.Name = r.RegionName;
-                block.X = (ushort)(r.RegionLocX / Constants.RegionSize);
-                block.Y = (ushort)(r.RegionLocY / Constants.RegionSize);
-                block.SizeX = (ushort)r.RegionSizeX;
-                block.SizeY = (ushort)r.RegionSizeY;
-                blocks.Add(block);
-            }
-            return blocks;
-        }
-
-
         public Hashtable OnHTTPThrottled(Hashtable keysvals)
         {
             Hashtable reply = new Hashtable();
@@ -1681,7 +1363,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
 
             foreach (GridRegion r in regions)
             {
-                MapBlockData mapBlock = MapBlockFromGridRegion(r, 0);
+                MapBlockData mapBlock = new MapBlockData();
+                MapBlockFromGridRegion(mapBlock, r , 0);
                 AssetBase texAsset = m_scene.AssetService.Get(mapBlock.MapImageId.ToString());
 
                 if (texAsset != null)
@@ -1752,13 +1435,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             uint xstart = 0;
             uint ystart = 0;
 
-<<<<<<< HEAD
-            Util.RegionHandleToWorldLoc(m_scene.RegionInfo.RegionHandle,out xstart,out ystart);
-            // m_log.DebugFormat("{0} HandleRemoteMapItemRequest. loc=<{1},{2}>",
-            //             LogHeader, Util.WorldToRegionLoc(xstart), Util.WorldToRegionLoc(ystart));
-=======
             Util.RegionHandleToWorldLoc(m_scene.RegionInfo.RegionHandle, out xstart, out ystart);
->>>>>>> avn/ubitvar
 
             // Service 6 (MAP_ITEM_AGENTS_LOCATION; green dots)
 
@@ -1878,7 +1555,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 return;
 
             m_log.DebugFormat("[WORLD MAP]: Generating map image for {0}", m_scene.Name);
-<<<<<<< HEAD
 
             using (Bitmap mapbmp = m_mapImageGenerator.CreateMapTile())
             {
@@ -1894,23 +1570,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
         {
             byte[] data;
 
-=======
-
-            using (Bitmap mapbmp = m_mapImageGenerator.CreateMapTile())
-            {
-                // V1 (This Module)
-                GenerateMaptile(mapbmp);
-
-                // v2/3 (MapImageServiceModule)
-                m_mapImageServiceModule.UploadMapTile(m_scene, mapbmp);
-            }
-        }
-
-        private void GenerateMaptile(Bitmap mapbmp)
-        {
-            byte[] data;
-
->>>>>>> avn/ubitvar
             try
             {
                 data = OpenJPEG.EncodeFromImage(mapbmp, true);
@@ -2027,11 +1686,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
             int regionSizeX = (int)m_scene.RegionInfo.RegionSizeX;
             int regionSizeY = (int)m_scene.RegionInfo.RegionSizeY;
 
-<<<<<<< HEAD
             int landTileSize = LandManagementModule.LandUnit;
-=======
-            int landTileSize = LandManagementModule.landUnit;
->>>>>>> avn/ubitvar
             int regionLandTilesX = regionSizeX / landTileSize;
             int regionLandTilesY = regionSizeY / landTileSize;
 
@@ -2054,10 +1709,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 {
                     using (SolidBrush transparent = new SolidBrush(background))
                         g.FillRectangle(transparent, 0, 0, regionSizeX, regionSizeY);
-<<<<<<< HEAD
-=======
-
->>>>>>> avn/ubitvar
 
                     foreach (ILandObject land in parcels)
                     {
@@ -2080,17 +1731,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
 
                     using (SolidBrush yellow = new SolidBrush(Color.FromArgb(255, 249, 223, 9)))
                     {
-<<<<<<< HEAD
-                        for (int x = 0 ; x < regionLandTilesX ; x++)
-                        {
-                            for (int y = 0 ; y < regionLandTilesY ; y++)
-                            {
-                                if (saleBitmap[x, y])
-                                    g.FillRectangle(
-                                        yellow, x * landTileSize, 
-                                        regionSizeX - landTileSize - (y * landTileSize), 
-                                        landTileSize, 
-=======
                         for (int x = 0; x < regionLandTilesX ; x++)
                         {
                             for (int y = 0; y < regionLandTilesY ; y++)
@@ -2101,7 +1741,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                                         x * landTileSize,
                                         regionSizeX - landTileSize - (y * landTileSize),
                                         landTileSize,
->>>>>>> avn/ubitvar
                                         landTileSize);
                             }
                         }

+ 0 - 24
OpenSim/Region/DataSnapshot/DataSnapshotManager.cs

@@ -402,7 +402,6 @@ namespace OpenSim.Region.DataSnapshot
                 string url = services[i].Trim();
                 using (RestClient cli = new RestClient(url))
                 {
-<<<<<<< HEAD
                     cli.AddQueryParameter("service", serviceName);
                     cli.AddQueryParameter("host", m_hostname);
                     cli.AddQueryParameter("port", m_listener_port);
@@ -436,30 +435,7 @@ namespace OpenSim.Region.DataSnapshot
                     // string responseStr = Util.UTF8.GetString(response);
                     m_log.Info("[DATASNAPSHOT]: data service " + url + " notified. Secret: " + m_Secret);
                 }
-=======
-                    m_log.Warn("[DATASNAPSHOT]: Ignoring unknown exception " + e.ToString());
-                }
-
-                byte[] response = new byte[1024];
-                // int n = 0;
-                try
-                {
-                    // n = reply.Read(response, 0, 1024);
-                    reply.Read(response, 0, 1024);
-                }
-                catch (Exception e)
-                {
-                    m_log.WarnFormat("[DATASNAPSHOT]: Unable to decode reply from data service. Ignoring. {0}", e.StackTrace);
-                }
-                // This is not quite working, so...
-                // string responseStr = Util.UTF8.GetString(response);
-                m_log.Info("[DATASNAPSHOT]: data service " + url + " notified. Secret: " + m_Secret);
-
-                if(reply != null)
-                    reply.Close();
->>>>>>> avn/ubitvar
             }
-
         }
         #endregion
 

+ 2 - 0
OpenSim/Region/Framework/Interfaces/IBakedTextureModule.cs

@@ -35,7 +35,9 @@ namespace OpenSim.Services.Interfaces
     public interface IBakedTextureModule
     {
         WearableCacheItem[] Get(UUID id);
+
         void Store(UUID id);
+        void Store(UUID id, WearableCacheItem[] WearableCache);
         void UpdateMeshAvatar(UUID id);
     }
 }

+ 0 - 6
OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs

@@ -93,15 +93,9 @@ namespace OpenSim.Region.Framework.Interfaces
 
         void EnableChildAgent(ScenePresence agent, GridRegion region);
 
-<<<<<<< HEAD
-        GridRegion GetDestination(Scene scene, UUID agentID, Vector3 pos, out string version,
-                                        out Vector3 newpos, out string reason);
-
-=======
         GridRegion GetDestination(Scene scene, UUID agentID, Vector3 pos, out string version, out Vector3 newpos);
         GridRegion GetObjectDestination(SceneObjectGroup grp, Vector3 targetPosition, out Vector3 newpos);
         bool checkAgentAccessToRegion(ScenePresence agent, GridRegion destiny, Vector3 position, out string version, out string reason);
->>>>>>> avn/ubitvar
         void Cross(SceneObjectGroup sog, Vector3 position, bool silent);
         bool CrossPrimGroupIntoNewRegion(GridRegion destination, Vector3 newPosition, SceneObjectGroup grp, bool silent);
 

+ 0 - 7
OpenSim/Region/Framework/Interfaces/IHttpRequests.cs

@@ -58,8 +58,6 @@ namespace OpenSim.Region.Framework.Interfaces
     public interface IHttpRequestModule
     {
         UUID MakeHttpRequest(string url, string parameters, string body);
-<<<<<<< HEAD
-
         /// <summary>
         /// Starts the http request.
         /// </summary>
@@ -86,12 +84,7 @@ namespace OpenSim.Region.Framework.Interfaces
         /// Stop and remove all http requests for the given script.
         /// </summary>
         /// <param name='id'></param>
-        void StopHttpRequestsForScript(UUID id);
-
-=======
-        UUID StartHttpRequest(uint localID, UUID itemID, string url, List<string> parameters, Dictionary<string, string> headers, string body);
         void StopHttpRequest(uint m_localID, UUID m_itemID);
->>>>>>> avn/ubitvar
         IServiceRequest GetNextCompletedRequest();
         void RemoveCompletedRequest(UUID id);
     }

+ 0 - 11
OpenSim/Region/Framework/Interfaces/IMapImageUploadModule.cs

@@ -25,24 +25,14 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-<<<<<<< HEAD
-using System.Drawing;
-using OpenSim.Framework;
-=======
 using OpenMetaverse;
 using OpenSim.Framework;
 using System.Drawing;
->>>>>>> avn/ubitvar
 
 namespace OpenSim.Region.Framework.Interfaces
 {
     public interface IMapImageUploadModule
     {
-<<<<<<< HEAD
-        void UploadMapTile(IScene scene, Bitmap mapTile);
-    }
-}
-=======
         /// <summary>
         /// Upload a new maptile
         /// </summary>
@@ -50,4 +40,3 @@ namespace OpenSim.Region.Framework.Interfaces
         void UploadMapTile(IScene scene, Bitmap mapTile);
     }
 }
->>>>>>> avn/ubitvar

+ 0 - 5
OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs

@@ -127,12 +127,7 @@ namespace OpenSim.Region.Framework.Interfaces
         /// <param name="requestId">If supplied, this request Id is later returned in the saved event</param>
         /// <param name="options">
         /// Dictionary of options.
-<<<<<<< HEAD
         /// </param>
         void DearchiveRegion(Stream loadStream, Guid requestId, Dictionary<string,object> options);
-=======
-        /// </param>    
-        void DearchiveRegion(Stream loadStream, Guid requestId, Dictionary<string, object> options);
->>>>>>> avn/ubitvar
     }
 }

+ 0 - 10
OpenSim/Region/Framework/Interfaces/ITerrainModule.cs

@@ -28,11 +28,8 @@ using System.IO;
 
 using OpenSim.Framework;
 
-<<<<<<< HEAD
-=======
 using System.IO;
 using OpenSim.Framework;
->>>>>>> avn/ubitvar
 using OpenMetaverse;
 
 namespace OpenSim.Region.Framework.Interfaces
@@ -55,12 +52,6 @@ namespace OpenSim.Region.Framework.Interfaces
         /// </summary>
         void PushTerrain(IClientAPI pClient);
      
-        /// <summary>
-        /// When a client initially connects, all the terrain must be pushed to the viewer.
-        /// This call causes all the terrain patches to be sent to the client.
-        /// </summary>
-        void PushTerrain(IClientAPI pClient);
-        
         /// <summary>
         /// Load a terrain from a stream.
         /// </summary>
@@ -69,7 +60,6 @@ namespace OpenSim.Region.Framework.Interfaces
         /// </param>
         /// <param name="stream"></param>
         void LoadFromStream(string filename, Stream stream);
-        void LoadFromStream(string filename, Vector3 displacement, float radianRotation, Vector2 rotationDisplacement, Stream stream);
         void LoadFromStream(string filename, System.Uri pathToTerrainHeightmap);
         void LoadFromStream(string filename, Vector3 displacement,
                                 float radianRotation, Vector2 rotationDisplacement, Stream stream);

+ 0 - 4
OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs

@@ -37,10 +37,6 @@ namespace OpenSim.Region.Framework.Interfaces
         /// </summary>
         void GenerateMaptile();
         List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag);
-<<<<<<< HEAD
-        MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag);
-=======
         void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag);
->>>>>>> avn/ubitvar
     }
 }

+ 10 - 118
OpenSim/Region/Framework/Scenes/KeyframeMotion.cs

@@ -351,26 +351,7 @@ namespace OpenSim.Region.Framework.Scenes
             m_group = grp;
             m_scene = grp.Scene;
 
-<<<<<<< HEAD
-            Vector3 grppos = grp.AbsolutePosition;
-            Vector3 offset = grppos - m_serializedPosition;
-            // avoid doing it more than once
-            // current this will happen dragging a prim to other region
-            m_serializedPosition = grppos;
-
-            m_basePosition += offset;
-            m_nextPosition += offset;
-            
-            m_currentFrame.StartPosition += offset;
-            m_currentFrame.Position += offset;
-
-            for (int i = 0; i < m_frames.Count; i++)
-            {
-                Keyframe k = m_frames[i];
-                k.StartPosition += offset;
-                k.Position += offset;
-                m_frames[i]=k;
-=======
+
             lock (m_frames)
             {
                 Vector3 grppos = grp.AbsolutePosition;
@@ -390,7 +371,6 @@ namespace OpenSim.Region.Framework.Scenes
                     k.Position += offset;
                     m_frames[i] = k;
                 }
->>>>>>> avn/ubitvar
             }
 
             if (m_running)
@@ -708,29 +688,6 @@ namespace OpenSim.Region.Framework.Scenes
 
             if (m_frames.Count == 0)
             {
-<<<<<<< HEAD
-                if (!m_running) return;
-
-                GetNextList();
-
-                if (m_frames.Count == 0)
-                {
-                    Stop();
-//                    Scene scene = m_group.Scene;
-//
-//                    IScriptModule[] scriptModules = scene.RequestModuleInterfaces<IScriptModule>();
-//                    foreach (IScriptModule m in scriptModules)
-//                    {
-//                        if (m == null)
-//                            continue;
-//                        m.PostObjectEvent(m_group.RootPart.UUID, "moving_end", new object[0]);
-//                    }
-
-                    m_group.Scene.EventManager.TriggerMovingEndEvent(m_group.RootPart.LocalId);
-			
-                    return;
-                }
-=======
                 lock (m_frames)
                 {
                     GetNextList();
@@ -738,17 +695,7 @@ namespace OpenSim.Region.Framework.Scenes
                     if (m_frames.Count == 0)
                     {
                         Done();
-                        Scene scene = m_group.Scene;
-
-                        IScriptModule[] scriptModules = scene.RequestModuleInterfaces<IScriptModule>();
-                        foreach (IScriptModule m in scriptModules)
-                        {
-                            if (m == null)
-                                continue;
-                            m.PostObjectEvent(m_group.RootPart.UUID, "moving_end", new object[0]);
-                        }
->>>>>>> avn/ubitvar
-
+                        m_group.Scene.EventManager.TriggerMovingEndEvent(m_group.RootPart.LocalId);
                         return;
                     }
 
@@ -792,21 +739,13 @@ namespace OpenSim.Region.Framework.Scenes
                 float completed = ((float)m_currentFrame.TimeTotal - (float)m_currentFrame.TimeMS) / (float)m_currentFrame.TimeTotal;
                 bool lastStep = m_currentFrame.TimeMS <= tickDuration;
 
-                Vector3 positionThisStep = m_currentFrame.StartPosition + (m_currentFrame.Position.Value - m_currentFrame.StartPosition) * completed;
-                Vector3 motionThisStep = positionThisStep - m_group.AbsolutePosition;
+                Vector3 v = (Vector3)m_currentFrame.Position - m_group.AbsolutePosition;
+                Vector3 motionThisFrame = v / (float)remainingSteps;
+                v = v * 1000 / m_currentFrame.TimeMS;
 
-<<<<<<< HEAD
-                float mag = Vector3.Mag(motionThisStep);
-
-                if ((mag >= 0.02f) || lastStep)
-                {
-                    m_nextPosition = m_group.AbsolutePosition + motionThisStep;
-                    m_group.AbsolutePosition = m_nextPosition;
-=======
                 m_nextPosition = m_group.AbsolutePosition + motionThisFrame;
 
                 if (Vector3.Mag(motionThisFrame) >= 0.05f)
->>>>>>> avn/ubitvar
                     update = true;
 
                 //int totalSteps = m_currentFrame.TimeTotal / (int)tickDuration;
@@ -819,45 +758,6 @@ namespace OpenSim.Region.Framework.Scenes
 
                     Quaternion step = Quaternion.Slerp(m_currentFrame.StartRotation, (Quaternion)m_currentFrame.Rotation, completed);
                     step.Normalize();
-<<<<<<< HEAD
-/* use simpler change detection
-* float angle = 0;
-
-                    float aa = current.X * current.X + current.Y * current.Y + current.Z * current.Z + current.W * current.W;
-                    float bb = step.X * step.X + step.Y * step.Y + step.Z * step.Z + step.W * step.W;
-                    float aa_bb = aa * bb;
-
-                    if (aa_bb == 0)
-                    {
-                        angle = 0;
-                    }
-                    else
-                    {
-                        float ab = current.X * step.X +
-                                   current.Y * step.Y +
-                                   current.Z * step.Z +
-                                   current.W * step.W;
-                        float q = (ab * ab) / aa_bb;
-
-                        if (q > 1.0f)
-                        {
-                            angle = 0;
-                        }
-                        else
-                        {
-                            angle = (float)Math.Acos(2 * q - 1);
-                        }
-                    }
-
-                    if (angle > 0.01f)
-*/
-                    if(Math.Abs(step.X - current.X) > 0.001f 
-                        || Math.Abs(step.Y - current.Y) > 0.001f 
-                        || Math.Abs(step.Z - current.Z) > 0.001f
-                        || lastStep)
-                        // assuming w is a dependente var
-
-=======
                     /* use simpler change detection
                     * float angle = 0;
 
@@ -893,9 +793,8 @@ namespace OpenSim.Region.Framework.Scenes
                         || Math.Abs(step.Y - current.Y) > 0.001f
                         || Math.Abs(step.Z - current.Z) > 0.001f)
                     // assuming w is a dependente var
->>>>>>> avn/ubitvar
                     {
-                        //                                m_group.UpdateGroupRotationR(step);
+//                                m_group.UpdateGroupRotationR(step);
                         m_group.RootPart.RotationOffset = step;
 
                         //m_group.RootPart.UpdateAngularVelocity(m_currentFrame.AngularVelocity / 2);
@@ -922,22 +821,15 @@ namespace OpenSim.Region.Framework.Scenes
 
             SceneObjectGroup tmp = m_group;
             m_group = null;
-            if (!m_selected && tmp != null)
-                m_serializedPosition = tmp.AbsolutePosition;
-<<<<<<< HEAD
-=======
-            fmt.Serialize(ms, this);
-            m_group = tmp;
-            if (!timerWasStopped && m_running && !m_waitingCrossing)
-                StartTimer();
->>>>>>> avn/ubitvar
-
+ 
             using (MemoryStream ms = new MemoryStream())
             {
                 BinaryFormatter fmt = new BinaryFormatter();
+                if (!m_selected && tmp != null)
+                    m_serializedPosition = tmp.AbsolutePosition;
                 fmt.Serialize(ms, this);
                 m_group = tmp;
-                if (m_running && !m_waitingCrossing)
+                if (!timerWasStopped && m_running && !m_waitingCrossing)
                     StartTimer();
 
                 return ms.ToArray();

+ 13 - 12
OpenSim/Region/Framework/Scenes/SOPVehicle.cs

@@ -487,7 +487,7 @@ namespace OpenSim.Region.Framework.Scenes
 
 
 
-        XmlTextReader reader;
+        XmlReader reader;
 
         private int XRint()
         {
@@ -524,7 +524,7 @@ namespace OpenSim.Region.Framework.Scenes
 
         public static bool EReadProcessors(
             Dictionary<string, Action> processors,
-            XmlTextReader xtr)
+            XmlReader xtr)
         {
             bool errors = false;
 
@@ -564,14 +564,15 @@ namespace OpenSim.Region.Framework.Scenes
         
         public string ToXml2()
         {
-            MemoryStream ms = new MemoryStream(512);
-            UTF8Encoding enc = new UTF8Encoding();
-            XmlTextWriter xwriter = new XmlTextWriter(ms, enc);
-            ToXml2(xwriter);
-            xwriter.Flush();
-            string s = ms.GetStreamString();
-            xwriter.Close();
-            return s;
+            using (StringWriter sw = new StringWriter())
+            {
+                using (XmlTextWriter xwriter = new XmlTextWriter(sw))
+                {
+                    ToXml2(xwriter);
+                }
+
+                return sw.ToString();
+            }
         }
 
         public static SOPVehicle FromXml2(string text)
@@ -598,7 +599,7 @@ namespace OpenSim.Region.Framework.Scenes
             return v;
         }
 
-        public static SOPVehicle FromXml2(XmlTextReader reader)
+        public static SOPVehicle FromXml2(XmlReader reader)
         {
             SOPVehicle vehicle = new SOPVehicle();
 
@@ -611,7 +612,7 @@ namespace OpenSim.Region.Framework.Scenes
             return vehicle;
         }
 
-        private void FromXml2(XmlTextReader _reader, out bool errors)
+        private void FromXml2(XmlReader _reader, out bool errors)
         {
             errors = false;
             reader = _reader;

+ 34 - 112
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs

@@ -881,14 +881,22 @@ namespace OpenSim.Region.Framework.Scenes
                     return;
             }
 
-<<<<<<< HEAD
             if (newName == String.Empty)
                 newName = item.Name;
-=======
-            if (newName == null) newName = item.Name;
 
             AssetBase asset = AssetService.Get(item.AssetID.ToString());
->>>>>>> avn/ubitvar
+
+            if (asset != null)
+            {
+                if (newName != String.Empty)
+                {
+                    asset.Name = newName;
+                }
+                else
+                {
+                    newName = item.Name;
+                }
+
 
             if (remoteClient.AgentId == oldAgentID
                 || (LibraryService != null
@@ -916,6 +924,13 @@ namespace OpenSim.Region.Framework.Scenes
                 }
             }
         }
+                      else
+            {
+                m_log.ErrorFormat(
+                    "[AGENT INVENTORY]: Could not copy item {0} since asset {1} could not be found",
+                    item.Name, item.AssetID);
+            }
+        }
 
         /// <summary>
         /// Create a new asset data structure.
@@ -982,31 +997,12 @@ namespace OpenSim.Region.Framework.Scenes
         public void CreateNewInventoryItem(
             IClientAPI remoteClient, string creatorID, string creatorData, UUID folderID,
             string name, string description, uint flags, uint callbackID,
-<<<<<<< HEAD
             UUID assetID, sbyte assetType, sbyte invType, uint nextOwnerMask, int creationDate)
         {
             CreateNewInventoryItem(
                 remoteClient, creatorID, creatorData, folderID, name, description, flags, callbackID, assetID, assetType, invType,
                 (uint)PermissionMask.All | (uint)PermissionMask.Export, (uint)PermissionMask.All | (uint)PermissionMask.Export, 0, nextOwnerMask, 0, 
                 creationDate, true);
-=======
-            AssetBase asset, sbyte invType, uint nextOwnerMask, int creationDate, UUID transationID)
-        {
-            CreateNewInventoryItem(
-                remoteClient, creatorID, creatorData, folderID, name, description, flags, callbackID, asset, invType,
-                (uint)PermissionMask.All | (uint)PermissionMask.Export, (uint)PermissionMask.All | (uint)PermissionMask.Export, 0, nextOwnerMask, 0, creationDate, transationID);
-        }
-
-
-        private void CreateNewInventoryItem(
-            IClientAPI remoteClient, string creatorID, string creatorData, UUID folderID,
-            string name, string description, uint flags, uint callbackID, AssetBase asset, sbyte invType,
-            uint baseMask, uint currentMask, uint everyoneMask, uint nextOwnerMask, uint groupMask, int creationDate)
-        {
-            CreateNewInventoryItem(remoteClient, creatorID, creatorData, folderID,
-                name, description, flags, callbackID, asset, invType,
-                baseMask, currentMask, everyoneMask, nextOwnerMask, groupMask, creationDate, UUID.Zero);
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -1030,14 +1026,9 @@ namespace OpenSim.Region.Framework.Scenes
         /// <param name="creationDate">Unix timestamp at which this item was created.</param>
         private void CreateNewInventoryItem(
             IClientAPI remoteClient, string creatorID, string creatorData, UUID folderID,
-<<<<<<< HEAD
             string name, string description, uint flags, uint callbackID, UUID assetID, sbyte assetType, sbyte invType,
             uint baseMask, uint currentMask, uint everyoneMask, uint nextOwnerMask, uint groupMask, int creationDate,
             bool assetUpload)
-=======
-            string name, string description, uint flags, uint callbackID, AssetBase asset, sbyte invType,
-            uint baseMask, uint currentMask, uint everyoneMask, uint nextOwnerMask, uint groupMask, int creationDate,UUID transationID)
->>>>>>> avn/ubitvar
         {
             InventoryItemBase item = new InventoryItemBase();
             item.Owner = remoteClient.AgentId;
@@ -1058,17 +1049,13 @@ namespace OpenSim.Region.Framework.Scenes
             item.BasePermissions = baseMask;
             item.CreationDate = creationDate;
 
-<<<<<<< HEAD
-            if (AddInventoryItem(item, assetUpload))
-=======
             // special AnimationSet case
             if (item.InvType == (int)CustomInventoryType.AnimationSet)
                 AnimationSet.enforceItemPermitions(item,true);
 
             if (AddInventoryItem(item))
->>>>>>> avn/ubitvar
             {
-                remoteClient.SendInventoryItemCreateUpdate(item, transationID, callbackID);
+                remoteClient.SendInventoryItemCreateUpdate(item, callbackID);
             }
             else
             {
@@ -1284,7 +1271,6 @@ namespace OpenSim.Region.Framework.Scenes
                 agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move);
                 if (taskItem.InvType == (int)InventoryType.Object)
                 {
-<<<<<<< HEAD
                     // Bake the new base permissions from folded permissions
                     // The folded perms are in the lowest 3 bits of the current perms
                     // We use base permissions here to avoid baking the "Locked" status
@@ -1296,13 +1282,6 @@ namespace OpenSim.Region.Framework.Scenes
                     agentItem.BasePermissions = perms | (uint)PermissionMask.Move;
                     // Newly given items cannot be "locked" on rez. Make sure by
                     // setting current equal to base.
-=======
-                    uint perms = taskItem.BasePermissions & taskItem.NextPermissions;
-                    PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms);
-//                    agentItem.BasePermissions = perms | (uint)PermissionMask.Move;
-//                    agentItem.CurrentPermissions = agentItem.BasePermissions;
-                    agentItem.BasePermissions = perms | (uint)PermissionMask.Move;
->>>>>>> avn/ubitvar
                 }
 
                 agentItem.CurrentPermissions = agentItem.BasePermissions;
@@ -1577,12 +1556,12 @@ namespace OpenSim.Region.Framework.Scenes
 
         public UUID MoveTaskInventoryItems(UUID destID, string category, SceneObjectPart host, List<UUID> items)
         {
-<<<<<<< HEAD
+
             ScenePresence avatar;
             IClientAPI remoteClient = null;
             if (TryGetScenePresence(destID, out avatar))
                 remoteClient = avatar.ControllingClient;
-=======
+// ????
             SceneObjectPart destPart = GetSceneObjectPart(destID);
             if (destPart != null) // Move into a prim
             {
@@ -1590,7 +1569,7 @@ namespace OpenSim.Region.Framework.Scenes
                     MoveTaskInventoryItem(destID, host, itemID);
                 return destID; // Prim folder ID == prim ID
             }
->>>>>>> avn/ubitvar
+// /????
 
             InventoryFolderBase rootFolder = InventoryService.GetRootFolder(destID);
 
@@ -2156,14 +2135,16 @@ namespace OpenSim.Region.Framework.Scenes
             List<uint> deleteIDs = new List<uint>();
             List<SceneObjectGroup> deleteGroups = new List<SceneObjectGroup>();
             List<SceneObjectGroup> takeGroups = new List<SceneObjectGroup>();
+            
+            // Start with true for both, then remove the flags if objects
+            // that we can't derez are part of the selection
+            bool permissionToTake = true;
+            bool permissionToTakeCopy = true;
+            bool permissionToDelete = true;
 
             foreach (uint localID in localIDs)
             {
-                // Start with true for both, then remove the flags if objects
-                // that we can't derez are part of the selection
-                bool permissionToTake = true;
-                bool permissionToTakeCopy = true;
-                bool permissionToDelete = true;
+
 
                 // Invalid id
                 SceneObjectPart part = GetSceneObjectPart(localID);
@@ -2287,27 +2268,15 @@ namespace OpenSim.Region.Framework.Scenes
                 }
             }
 
-<<<<<<< HEAD
-            // OK, we're done with permissions. Let's check if any part of the code prevents the objects from being deleted
-            bool canDelete = EventManager.TriggerDeRezRequested(remoteClient, deleteGroups, action);
-
-            if (permissionToTake && (action != DeRezAction.Delete || this.m_useTrashOnDelete))
-=======
-            SendKillObject(deleteIDs);
+             SendKillObject(deleteIDs);
 
             if (deleteGroups.Count > 0)
->>>>>>> avn/ubitvar
             {
                 foreach (SceneObjectGroup g in deleteGroups)
                     deleteIDs.Remove(g.LocalId);
 
                 m_asyncSceneObjectDeleter.DeleteToInventory(
                         action, destinationID, deleteGroups, remoteClient,
-<<<<<<< HEAD
-                        permissionToDelete && canDelete);
-            }
-            else if (permissionToDelete && canDelete)
-=======
                         true);
             }
             if (takeGroups.Count > 0)
@@ -2317,7 +2286,6 @@ namespace OpenSim.Region.Framework.Scenes
                         false);
             }
             if (deleteIDs.Count > 0)
->>>>>>> avn/ubitvar
             {
                 foreach (SceneObjectGroup g in deleteGroups)
                     DeleteSceneObject(g, true);
@@ -2361,7 +2329,7 @@ namespace OpenSim.Region.Framework.Scenes
                 item.AssetType = asset.Type;
                 item.InvType = (int)InventoryType.Object;
 
-                InventoryFolderBase folder = InventoryService.GetFolderForType(remoteClient.AgentId, AssetType.Object);
+                InventoryFolderBase folder = InventoryService.GetFolderForType(remoteClient.AgentId, FolderType.Object);
                 if (folder != null)
                     item.Folder = folder.ID;
                 else // oopsies
@@ -2435,34 +2403,10 @@ namespace OpenSim.Region.Framework.Scenes
 
             string xmlData = ExternalRepresentationUtils.SanitizeXml(Utils.BytesToString(assetData));
 
-<<<<<<< HEAD
             try
-=======
-            if (e == null || attachment) // Single
-            {
-                SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(xmlData);
-/*
-                if (!attachment)
-                {
-                    g.RootPart.AttachPoint = g.RootPart.Shape.State;
-                    g.RootPart.AttachedPos = g.AbsolutePosition;
-                    g.RootPart.AttachRotation = g.GroupRotation;
-                    if (g.RootPart.Shape.PCode != (byte)PCode.NewTree &&
-                        g.RootPart.Shape.PCode != (byte)PCode.Tree)
-                        g.RootPart.Shape.State = 0;
-                }
-*/
-                objlist.Add(g);
-                veclist.Add(new Vector3(0, 0, 0));
-                bbox = g.GetAxisAlignedBoundingBox(out offsetHeight);
-                return true;
-            }
-            else
->>>>>>> avn/ubitvar
             {
                 using (XmlTextReader wrappedReader = new XmlTextReader(xmlData, XmlNodeType.Element, null))
                 {
-<<<<<<< HEAD
                     using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment }))
                     {
                         reader.Read();
@@ -2481,7 +2425,7 @@ namespace OpenSim.Region.Framework.Scenes
                                 Util.LogFailedXML("[AGENT INVENTORY]:", xmlData);
                                 g = null;
                             }
-                            
+
                             if (g != null)
                             {
                                 objlist.Add(g);
@@ -2492,7 +2436,7 @@ namespace OpenSim.Region.Framework.Scenes
                             return true;
                         }
                         else
-                        {                
+                        {
                             XmlDocument doc = new XmlDocument();
                             doc.LoadXml(xmlData);
                             XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject");
@@ -2526,28 +2470,6 @@ namespace OpenSim.Region.Framework.Scenes
                             return false;
                         }
                     }
-=======
-                    SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml);
-/*
-                    g.RootPart.AttachPoint = g.RootPart.Shape.State;
-                    g.RootPart.AttachedPos = g.AbsolutePosition;
-                    g.RootPart.AttachRotation = g.GroupRotation;
-                    if (g.RootPart.Shape.PCode != (byte)PCode.NewTree &&
-                        g.RootPart.Shape.PCode != (byte)PCode.Tree)
-                    g.RootPart.Shape.State = 0;
-*/
-                    objlist.Add(g);
-
-                    XmlElement el = (XmlElement)n;
-                    string rawX = el.GetAttribute("offsetx");
-                    string rawY = el.GetAttribute("offsety");
-                    string rawZ = el.GetAttribute("offsetz");
-
-                    float x = Convert.ToSingle(rawX);
-                    float y = Convert.ToSingle(rawY);
-                    float z = Convert.ToSingle(rawZ);
-                    veclist.Add(new Vector3(x, y, z));
->>>>>>> avn/ubitvar
                 }
             }
             catch (Exception e)

+ 0 - 4
OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs

@@ -551,7 +551,6 @@ namespace OpenSim.Region.Framework.Scenes
 
         void SendInventoryAsync(IClientAPI remoteClient, UUID folderID, UUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder)
         {
-<<<<<<< HEAD
             try
             {
                 SendInventoryUpdate(remoteClient, new InventoryFolderBase(folderID), fetchFolders, fetchItems);
@@ -562,10 +561,7 @@ namespace OpenSim.Region.Framework.Scenes
                     string.Format(
                         "[AGENT INVENTORY]: Error in SendInventoryAsync() for {0} with folder ID {1}.  Exception  ", e));
             }
-=======
             Thread.Sleep(20);
-            SendInventoryUpdate(remoteClient, new InventoryFolderBase(folderID), fetchFolders, fetchItems);
->>>>>>> avn/ubitvar
         }
 
         void SendInventoryComplete(IAsyncResult iar)

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 65 - 460
OpenSim/Region/Framework/Scenes/Scene.cs


+ 1 - 602
OpenSim/Region/Framework/Scenes/SceneBase.cs

@@ -1,4 +1,3 @@
-<<<<<<< HEAD
 /*
  * Copyright (c) Contributors, http://opensimulator.org/
  * See CONTRIBUTORS.TXT for a full list of copyright holders.
@@ -201,7 +200,7 @@ namespace OpenSim.Region.Framework.Scenes
         /// If -1 then updates until shutdown.
         /// </param>
         /// <returns>true if update completed within minimum frame time, false otherwise.</returns>
-        public abstract bool Update(int frames);
+        public abstract void Update(int frames);
 
         #endregion
 
@@ -635,603 +634,3 @@ namespace OpenSim.Region.Framework.Scenes
         public abstract bool CheckClient(UUID agentID, System.Net.IPEndPoint ep);
     }
 }
-=======
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the OpenSimulator Project nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Threading;
-using OpenMetaverse;
-using log4net;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-
-using OpenSim.Region.Framework.Interfaces;
-using GridRegion = OpenSim.Services.Interfaces.GridRegion;
-
-namespace OpenSim.Region.Framework.Scenes
-{
-    public abstract class SceneBase : IScene
-    {
-        protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-        protected static readonly string LogHeader = "[SCENE]";
-
-        #region Events
-
-        public event restart OnRestart;
-
-        #endregion
-
-        #region Fields
-
-        public string Name { get { return RegionInfo.RegionName; } }
-        
-        public IConfigSource Config
-        {
-            get { return GetConfig(); }
-        }
-
-        protected virtual IConfigSource GetConfig()
-        {
-            return null;
-        }
-
-        /// <value>
-        /// All the region modules attached to this scene.
-        /// </value>
-        public Dictionary<string, IRegionModuleBase> RegionModules
-        {
-            get { return m_regionModules; }
-        }
-        private Dictionary<string, IRegionModuleBase> m_regionModules = new Dictionary<string, IRegionModuleBase>();
-
-        /// <value>
-        /// The module interfaces available from this scene.
-        /// </value>
-        protected Dictionary<Type, List<object>> ModuleInterfaces = new Dictionary<Type, List<object>>();
-
-        protected Dictionary<string, object> ModuleAPIMethods = new Dictionary<string, object>();
-
-        /// <value>
-        /// The module commanders available from this scene
-        /// </value>
-        protected Dictionary<string, ICommander> m_moduleCommanders = new Dictionary<string, ICommander>();
-        
-        /// <value>
-        /// Registered classes that are capable of creating entities.
-        /// </value>
-        protected Dictionary<PCode, IEntityCreator> m_entityCreators = new Dictionary<PCode, IEntityCreator>();
-
-        /// <summary>
-        /// The last allocated local prim id.  When a new local id is requested, the next number in the sequence is
-        /// dispensed.
-        /// </summary>
-        protected uint m_lastAllocatedLocalId = 720000;
-
-        private readonly Mutex _primAllocateMutex = new Mutex(false);
-        
-        protected readonly ClientManager m_clientManager = new ClientManager();
-
-        public bool LoginsEnabled
-        {
-            get
-            {
-                return m_loginsEnabled;
-            }
-
-            set
-            {
-                if (m_loginsEnabled != value)
-                {
-                    m_loginsEnabled = value;
-                    EventManager.TriggerRegionLoginsStatusChange(this);
-                }
-            }
-        }
-        private bool m_loginsEnabled;
-
-        public bool Ready
-        {
-            get
-            {
-                return m_ready;
-            }
-
-            set
-            {
-                if (m_ready != value)
-                {
-                    m_ready = value;
-                    EventManager.TriggerRegionReadyStatusChange(this);
-                }
-            }
-        }
-        private bool m_ready;
-
-        public float TimeDilation
-        {
-            get { return 1.0f; }
-        }
-
-        protected ulong m_regionHandle;
-        protected string m_regionName;
-
-        public ITerrainChannel Heightmap;
-
-        /// <value>
-        /// Allows retrieval of land information for this scene.
-        /// </value>
-        public ILandChannel LandChannel;
-
-        /// <value>
-        /// Manage events that occur in this scene (avatar movement, script rez, etc.).  Commonly used by region modules
-        /// to subscribe to scene events.
-        /// </value>
-        public EventManager EventManager
-        {
-            get { return m_eventManager; }
-        }
-        protected EventManager m_eventManager;
-
-        protected ScenePermissions m_permissions;
-        public ScenePermissions Permissions
-        {
-            get { return m_permissions; }
-        }
-
-        protected string m_datastore;
-
-         /* Used by the loadbalancer plugin on GForge */
-        protected RegionStatus m_regStatus;
-        public RegionStatus RegionStatus
-        {
-            get { return m_regStatus; }
-            set { m_regStatus = value; }
-        }
-
-        #endregion
-
-        public SceneBase(RegionInfo regInfo)
-        {
-            RegionInfo = regInfo;
-        }
-
-        #region Update Methods
-
-        /// <summary>
-        /// Called to update the scene loop by a number of frames and until shutdown.
-        /// </summary>
-        /// <param name="frames">
-        /// Number of frames to update.  Exits on shutdown even if there are frames remaining.
-        /// If -1 then updates until shutdown.
-        /// </param>
-        public abstract void Update(int frames);
-
-        #endregion
-
-        #region Terrain Methods
-
-        /// <summary>
-        /// Loads the World heightmap
-        /// </summary>
-        public abstract void LoadWorldMap();
-
-        /// <summary>
-        /// Send the region heightmap to the client
-        /// </summary>
-        /// <param name="RemoteClient">Client to send to</param>
-        public virtual void SendLayerData(IClientAPI RemoteClient)
-        {
-//            RemoteClient.SendLayerData(Heightmap.GetFloatsSerialised());
-            ITerrainModule terrModule = RequestModuleInterface<ITerrainModule>();
-            if (terrModule != null)
-            {
-                terrModule.PushTerrain(RemoteClient);
-            }
-        }
-
-        #endregion
-
-        #region Add/Remove Agent/Avatar
-
-        public abstract ISceneAgent AddNewAgent(IClientAPI client, PresenceType type);
-
-        public abstract bool CloseAgent(UUID agentID, bool force);
-
-        public bool TryGetScenePresence(UUID agentID, out object scenePresence)
-        {
-            scenePresence = null;
-            ScenePresence sp = null;
-            if (TryGetScenePresence(agentID, out sp))
-            {
-                scenePresence = sp;
-                return true;
-            }
-
-            return false;
-        }
-
-        /// <summary>
-        /// Try to get a scene presence from the scene
-        /// </summary>
-        /// <param name="agentID"></param>
-        /// <param name="scenePresence">null if there is no scene presence with the given agent id</param>
-        /// <returns>true if there was a scene presence with the given id, false otherwise.</returns>
-        public abstract bool TryGetScenePresence(UUID agentID, out ScenePresence scenePresence);
-
-        #endregion
-
-        /// <summary>
-        ///
-        /// </summary>
-        /// <returns></returns>
-        public virtual RegionInfo RegionInfo { get; private set; }
-
-        #region admin stuff
-        
-        public abstract void OtherRegionUp(GridRegion otherRegion);
-
-        public virtual string GetSimulatorVersion()
-        {
-            return "OpenSimulator Server";
-        }
-
-        #endregion
-
-        #region Shutdown
-
-        /// <summary>
-        /// Tidy before shutdown
-        /// </summary>
-        public virtual void Close()
-        {
-            try
-            {
-                EventManager.TriggerShutdown();
-            }
-            catch (Exception e)
-            {
-                m_log.Error(string.Format("[SCENE]: SceneBase.cs: Close() - Failed with exception ", e));
-            }
-        }
-
-        #endregion
-
-        /// <summary>
-        /// Returns a new unallocated local ID
-        /// </summary>
-        /// <returns>A brand new local ID</returns>
-        public uint AllocateLocalId()
-        {
-            uint myID;
-
-            _primAllocateMutex.WaitOne();
-            myID = ++m_lastAllocatedLocalId;
-            _primAllocateMutex.ReleaseMutex();
-
-            return myID;
-        }
-
-        public uint AllocatePresenceLocalId()
-        {
-            uint myID;
-
-            _primAllocateMutex.WaitOne();
-            myID = ++m_lastAllocatedLocalId;
-            ++m_lastAllocatedLocalId;
-            _primAllocateMutex.ReleaseMutex();
-
-            return myID;
-        }
-        
-        #region Module Methods
-
-        /// <summary>
-        /// Add a region-module to this scene. TODO: This will replace AddModule in the future.
-        /// </summary>
-        /// <param name="name"></param>
-        /// <param name="module"></param>
-        public void AddRegionModule(string name, IRegionModuleBase module)
-        {
-            if (!RegionModules.ContainsKey(name))
-            {
-                RegionModules.Add(name, module);
-            }
-        }
-
-        public void RemoveRegionModule(string name)
-        {
-            RegionModules.Remove(name);
-        }
-
-        /// <summary>
-        /// Register a module commander.
-        /// </summary>
-        /// <param name="commander"></param>
-        public void RegisterModuleCommander(ICommander commander)
-        {
-            lock (m_moduleCommanders)
-            {
-                m_moduleCommanders.Add(commander.Name, commander);
-            }
-        }
-
-        /// <summary>
-        /// Unregister a module commander and all its commands
-        /// </summary>
-        /// <param name="name"></param>
-        public void UnregisterModuleCommander(string name)
-        {
-            lock (m_moduleCommanders)
-            {
-                ICommander commander;
-                if (m_moduleCommanders.TryGetValue(name, out commander))
-                    m_moduleCommanders.Remove(name);
-            }
-        }
-
-        /// <summary>
-        /// Get a module commander
-        /// </summary>
-        /// <param name="name"></param>
-        /// <returns>The module commander, null if no module commander with that name was found</returns>
-        public ICommander GetCommander(string name)
-        {
-            lock (m_moduleCommanders)
-            {
-                if (m_moduleCommanders.ContainsKey(name))
-                    return m_moduleCommanders[name];
-            }
-            
-            return null;
-        }
-
-        public Dictionary<string, ICommander> GetCommanders()
-        {
-            return m_moduleCommanders;
-        }
-
-        /// <summary>
-        /// Register an interface to a region module.  This allows module methods to be called directly as
-        /// well as via events.  If there is already a module registered for this interface, it is not replaced
-        /// (is this the best behaviour?)
-        /// </summary>
-        /// <param name="mod"></param>
-        public void RegisterModuleInterface<M>(M mod)
-        {
-//            m_log.DebugFormat("[SCENE BASE]: Registering interface {0}", typeof(M));
-            
-            List<Object> l = null;
-            if (!ModuleInterfaces.TryGetValue(typeof(M), out l))
-            {
-                l = new List<Object>();
-                ModuleInterfaces.Add(typeof(M), l);
-            }
-
-            if (l.Count > 0)
-                return;
-
-            l.Add(mod);
-
-            if (mod is IEntityCreator)
-            {
-                IEntityCreator entityCreator = (IEntityCreator)mod;
-                foreach (PCode pcode in entityCreator.CreationCapabilities)
-                {
-                    m_entityCreators[pcode] = entityCreator;
-                }
-            }
-        }
-
-        public void UnregisterModuleInterface<M>(M mod)
-        {
-            List<Object> l;
-            if (ModuleInterfaces.TryGetValue(typeof(M), out l))
-            {
-                if (l.Remove(mod))
-                {
-                    if (mod is IEntityCreator)
-                    {
-                        IEntityCreator entityCreator = (IEntityCreator)mod;
-                        foreach (PCode pcode in entityCreator.CreationCapabilities)
-                        {
-                            m_entityCreators[pcode] = null;
-                        }
-                    }
-                }
-            }
-        }
-
-        public void StackModuleInterface<M>(M mod)
-        {
-            List<Object> l;
-            if (ModuleInterfaces.ContainsKey(typeof(M)))
-                l = ModuleInterfaces[typeof(M)];
-            else
-                l = new List<Object>();
-
-            if (l.Contains(mod))
-                return;
-
-            l.Add(mod);
-
-            if (mod is IEntityCreator)
-            {
-                IEntityCreator entityCreator = (IEntityCreator)mod;
-                foreach (PCode pcode in entityCreator.CreationCapabilities)
-                {
-                    m_entityCreators[pcode] = entityCreator;
-                }
-            }
-
-            ModuleInterfaces[typeof(M)] = l;
-        }
-
-        /// <summary>
-        /// For the given interface, retrieve the region module which implements it.
-        /// </summary>
-        /// <returns>null if there is no registered module implementing that interface</returns>
-        public T RequestModuleInterface<T>()
-        {
-            if (ModuleInterfaces.ContainsKey(typeof(T)) &&
-                    (ModuleInterfaces[typeof(T)].Count > 0))
-                return (T)ModuleInterfaces[typeof(T)][0];
-            else
-                return default(T);
-        }
-
-        /// <summary>
-        /// For the given interface, retrieve an array of region modules that implement it.
-        /// </summary>
-        /// <returns>an empty array if there are no registered modules implementing that interface</returns>
-        public T[] RequestModuleInterfaces<T>()
-        {
-            if (ModuleInterfaces.ContainsKey(typeof(T)))
-            {
-                List<T> ret = new List<T>();
-
-                foreach (Object o in ModuleInterfaces[typeof(T)])
-                    ret.Add((T)o);
-                return ret.ToArray();
-            }
-            else
-            {
-                return new T[] {};
-            }
-        }
-        
-        #endregion
-        
-        /// <summary>
-        /// Call this from a region module to add a command to the OpenSim console.
-        /// </summary>
-        /// <param name="mod"></param>
-        /// <param name="command"></param>
-        /// <param name="shorthelp"></param>
-        /// <param name="longhelp"></param>
-        /// <param name="callback"></param>
-        public void AddCommand(IRegionModuleBase module, string command, string shorthelp, string longhelp, CommandDelegate callback)
-        {
-            AddCommand(module, command, shorthelp, longhelp, string.Empty, callback);
-        }
-
-        /// <summary>
-        /// Call this from a region module to add a command to the OpenSim console.
-        /// </summary>
-        /// <param name="mod">
-        /// The use of IRegionModuleBase is a cheap trick to get a different method signature,
-        /// though all new modules should be using interfaces descended from IRegionModuleBase anyway.
-        /// </param>
-        /// <param name="category">
-        /// Category of the command.  This is the section under which it will appear when the user asks for help
-        /// </param>
-        /// <param name="command"></param>
-        /// <param name="shorthelp"></param>
-        /// <param name="longhelp"></param>
-        /// <param name="callback"></param>
-        public void AddCommand(
-            string category, IRegionModuleBase module, string command, string shorthelp, string longhelp, CommandDelegate callback)
-        {
-            AddCommand(category, module, command, shorthelp, longhelp, string.Empty, callback);
-        }
-
-        /// <summary>
-        /// Call this from a region module to add a command to the OpenSim console.
-        /// </summary>
-        /// <param name="mod"></param>
-        /// <param name="command"></param>
-        /// <param name="shorthelp"></param>
-        /// <param name="longhelp"></param>
-        /// <param name="descriptivehelp"></param>
-        /// <param name="callback"></param>
-        public void AddCommand(IRegionModuleBase module, string command, string shorthelp, string longhelp, string descriptivehelp, CommandDelegate callback)
-        {
-            string moduleName = "";
-
-            if (module != null)
-                moduleName = module.Name;
-
-            AddCommand(moduleName, module, command, shorthelp, longhelp, descriptivehelp, callback);
-        }
-
-        /// <summary>
-        /// Call this from a region module to add a command to the OpenSim console.
-        /// </summary>
-        /// <param name="category">
-        /// Category of the command.  This is the section under which it will appear when the user asks for help
-        /// </param>
-        /// <param name="mod"></param>
-        /// <param name="command"></param>
-        /// <param name="shorthelp"></param>
-        /// <param name="longhelp"></param>
-        /// <param name="descriptivehelp"></param>
-        /// <param name="callback"></param>
-        public void AddCommand(
-            string category, IRegionModuleBase module, string command,
-            string shorthelp, string longhelp, string descriptivehelp, CommandDelegate callback)
-        {
-            if (MainConsole.Instance == null)
-                return;
-
-            bool shared = false;
-
-            if (module != null)
-                shared = module is ISharedRegionModule;
-
-            MainConsole.Instance.Commands.AddCommand(
-                category, shared, command, shorthelp, longhelp, descriptivehelp, callback);
-        }
-
-        public virtual ISceneObject DeserializeObject(string representation)
-        {
-            return null;
-        }
-
-        public virtual bool AllowScriptCrossings
-        {
-            get { return false; }
-        }
-
-        public virtual void Start()
-        {
-        }
-
-        public void Restart()
-        {
-            // This has to be here to fire the event
-            restart handlerPhysicsCrash = OnRestart;
-            if (handlerPhysicsCrash != null)
-                handlerPhysicsCrash(RegionInfo);
-        }
-
-        public abstract bool CheckClient(UUID agentID, System.Net.IPEndPoint ep);
-    }
-}
->>>>>>> avn/ubitvar

+ 2 - 58
OpenSim/Region/Framework/Scenes/SceneGraph.cs

@@ -1928,7 +1928,7 @@ namespace OpenSim.Region.Framework.Scenes
                         SceneObjectGroupsByLocalPartID[part.LocalId] = parentGroup;
                 }
 */
-                parentGroup.AdjustChildPrimPermissions();
+                parentGroup.AdjustChildPrimPermissions(false);
                 parentGroup.HasGroupChanged = true;
                 parentGroup.ProcessBackup(m_parentScene.SimulationDataService, true);
                 parentGroup.ScheduleGroupForFullUpdate();
@@ -2066,7 +2066,7 @@ namespace OpenSim.Region.Framework.Scenes
                     // return unless the root is deleted. This will remove them
                     // from the database. They will be rewritten immediately,
                     // minus the rows for the unlinked child prims.
-                    g.AdjustChildPrimPermissions();
+                    g.AdjustChildPrimPermissions(false);
                     m_parentScene.SimulationDataService.RemoveObject(g.UUID, m_parentScene.RegionInfo.RegionID);
                     g.TriggerScriptChangedEvent(Changed.LINK);
                     g.HasGroupChanged = true; // Persist
@@ -2154,13 +2154,8 @@ namespace OpenSim.Region.Framework.Scenes
                 if (m_parentScene.Permissions.CanDuplicateObject(
                     original.PrimCount, original.UUID, AgentID, original.AbsolutePosition))
                 {
-<<<<<<< HEAD
-                    m_log.WarnFormat(
-                        "[SCENEGRAPH]: Attempt to duplicate nonexistent prim id {0} by {1}", originalPrimID, AgentID);
-=======
                     SceneObjectGroup copy = original.Copy(true);
                     copy.AbsolutePosition = copy.AbsolutePosition + offset;
->>>>>>> avn/ubitvar
 
                     if (original.OwnerID != AgentID)
                     {
@@ -2197,63 +2192,12 @@ namespace OpenSim.Region.Framework.Scenes
 
                     // PROBABLE END OF FIXME
 
-<<<<<<< HEAD
-                // FIXME: This section needs to be refactored so that it just calls AddSceneObject()
-                Entities.Add(copy);
-                
-                lock (SceneObjectGroupsByFullID)
-                    SceneObjectGroupsByFullID[copy.UUID] = copy;
-                
-                SceneObjectPart[] children = copy.Parts;
-                
-                lock (SceneObjectGroupsByFullPartID)
-                {
-                    SceneObjectGroupsByFullPartID[copy.UUID] = copy;
-                    foreach (SceneObjectPart part in children)
-                        SceneObjectGroupsByFullPartID[part.UUID] = copy;
-                }
-    
-                lock (SceneObjectGroupsByLocalPartID)
-                {
-                    SceneObjectGroupsByLocalPartID[copy.LocalId] = copy;
-                    foreach (SceneObjectPart part in children)
-                        SceneObjectGroupsByLocalPartID[part.LocalId] = copy;
-                }   
-                // PROBABLE END OF FIXME
-
-                // Since we copy from a source group that is in selected
-                // state, but the copy is shown deselected in the viewer,
-                // We need to clear the selection flag here, else that
-                // prim never gets persisted at all. The client doesn't
-                // think it's selected, so it will never send a deselect...
-                copy.IsSelected = false;
-
-                m_numTotalPrim += copy.Parts.Length;
-
-                // Go through all parts (primitives and meshes) of this Scene Object
-                foreach (SceneObjectPart part in copy.Parts)
-                {
-                    // Keep track of the total number of meshes or geometric primitives now in the scene;
-                    // determine which object this is based on its primitive type: sculpted (sculpt) prim refers to
-                    // a mesh and all other prims (i.e. box, sphere, etc) are geometric primitives
-                    if (part.GetPrimType() == PrimType.SCULPT)
-                        m_numMesh++;
-                    else
-                        m_numPrim++;
-                }
-
-                if (rot != Quaternion.Identity)
-                {
-                    copy.UpdateGroupRotationR(rot);
-                }
-=======
                     // Since we copy from a source group that is in selected
                     // state, but the copy is shown deselected in the viewer,
                     // We need to clear the selection flag here, else that
                     // prim never gets persisted at all. The client doesn't
                     // think it's selected, so it will never send a deselect...
                     copy.IsSelected = false;
->>>>>>> avn/ubitvar
 
                     m_numPrim += copy.Parts.Length;
 

+ 2 - 5
OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs

@@ -266,15 +266,12 @@ namespace OpenSim.Region.Framework.Scenes
             for (int i = 0; i < parts.Length; i++)
             {
                 SceneObjectPart part = parts[i];
-<<<<<<< HEAD
-//                m_log.DebugFormat("[SCENE OBJECT GROUP INVENTORY]: Effective perms of {0} are {1}", part.Name, (OpenMetaverse.PermissionMask)part.OwnerMask);
-                ownerMask &= part.OwnerMask;
-=======
+
                 if (useBase)
                     ownerMask &= part.BaseMask;
                 else
                     ownerMask &= part.OwnerMask;
->>>>>>> avn/ubitvar
+
                 perms &= part.Inventory.MaskEffectivePermissions();
             }
 

+ 7 - 235
OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs

@@ -122,17 +122,12 @@ namespace OpenSim.Region.Framework.Scenes
         /// since the group's last persistent backup
         /// </summary>
         private bool m_hasGroupChanged = false;
-<<<<<<< HEAD
-        private long timeFirstChanged;
-        private long timeLastChanged;
-=======
         private long timeFirstChanged = 0;
         private long timeLastChanged = 0;
         private long m_maxPersistTime = 0;
         private long m_minPersistTime = 0;
 //        private Random m_rand;
         private List<ScenePresence> m_linkedAvatars = new List<ScenePresence>();
->>>>>>> avn/ubitvar
 
         /// <summary>
         /// This indicates whether the object has changed such that it needs to be repersisted to permenant storage
@@ -205,7 +200,6 @@ namespace OpenSim.Region.Framework.Scenes
         /// the prims in the database still use the old SceneGroupID. That's a problem if the group
         /// is deleted, because we delete groups by searching for prims by their SceneGroupID.
         /// </summary>
-<<<<<<< HEAD
         public bool GroupContainsForeignPrims
         {
             private set
@@ -218,9 +212,7 @@ namespace OpenSim.Region.Framework.Scenes
             get { return m_groupContainsForeignPrims; }
         }
 
-=======
         public bool HasGroupChangedDueToDelink { get; set; }
->>>>>>> avn/ubitvar
 
         private bool isTimeToPersist()
         {
@@ -350,7 +342,6 @@ namespace OpenSim.Region.Framework.Scenes
             get { return RootPart.VolumeDetectActive; }
         }
 
-<<<<<<< HEAD
         private Vector3 lastPhysGroupPos;
         private Quaternion lastPhysGroupRot;
 
@@ -358,9 +349,8 @@ namespace OpenSim.Region.Framework.Scenes
         /// Is this entity set to be saved in persistent storage?
         /// </summary>
         public bool Backup { get; private set; }
-=======
+
         private bool m_isBackedUp;
->>>>>>> avn/ubitvar
 
         public bool IsBackedUp
         {
@@ -570,146 +560,11 @@ namespace OpenSim.Region.Framework.Scenes
                         && !Scene.LoadingPrims
                     )
                 {
-<<<<<<< HEAD
-                    if (
-                        !Scene.PositionIsInCurrentRegion(val)
-                                && !IsAttachmentCheckFull()
-                                && (!Scene.LoadingPrims)
-                        )
-                    {
-                        IEntityTransferModule entityTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
-                        string version = String.Empty;
-                        Vector3 newpos = Vector3.Zero;
-                        string failureReason = String.Empty;
-                        OpenSim.Services.Interfaces.GridRegion destination = null;
-
-                        if (m_rootPart.KeyframeMotion != null)
-                            m_rootPart.KeyframeMotion.StartCrossingCheck();
-
-                        bool canCross = true;
-                        foreach (ScenePresence av in GetSittingAvatars())
-                        {
-                            // We need to cross these agents. First, let's find
-                            // out if any of them can't cross for some reason.
-                            // We have to deny the crossing entirely if any
-                            // of them are banned. Alternatively, we could
-                            // unsit banned agents....
-
-
-                            // We set the avatar position as being the object
-                            // position to get the region to send to
-                            if ((destination = entityTransfer.GetDestination(m_scene, av.UUID, val, out version, out newpos, out failureReason)) == null)
-                            {
-                                canCross = false;
-                                break;
-                            }
-
-                            m_log.DebugFormat("[SCENE OBJECT]: Avatar {0} needs to be crossed to {1}", av.Name, destination.RegionName);
-                        }
-
-                        if (canCross)
-                        {
-                            // We unparent the SP quietly so that it won't
-                            // be made to stand up
-
-                            List<avtocrossInfo> avsToCross = new List<avtocrossInfo>();
-
-                            foreach (ScenePresence av in GetSittingAvatars())
-                            {
-                                avtocrossInfo avinfo = new avtocrossInfo();
-                                SceneObjectPart parentPart = m_scene.GetSceneObjectPart(av.ParentID);
-                                if (parentPart != null)
-                                    av.ParentUUID = parentPart.UUID;
-
-                                avinfo.av = av;
-                                avinfo.ParentID = av.ParentID;
-                                avsToCross.Add(avinfo);
-
-                                av.PrevSitOffset = av.OffsetPosition;
-                                av.ParentID = 0;
-                            }
-
-                            m_scene.CrossPrimGroupIntoNewRegion(val, this, true);
-
-                            // Normalize
-                            if (val.X >= m_scene.RegionInfo.RegionSizeX)
-                                val.X -= m_scene.RegionInfo.RegionSizeX;
-                            if (val.Y >= m_scene.RegionInfo.RegionSizeY)
-                                val.Y -= m_scene.RegionInfo.RegionSizeY;
-                            if (val.X < 0)
-                                val.X += m_scene.RegionInfo.RegionSizeX;
-                            if (val.Y < 0)
-                                val.Y += m_scene.RegionInfo.RegionSizeY;
-
-                            // If it's deleted, crossing was successful
-                            if (IsDeleted)
-                            {
-                                foreach (avtocrossInfo avinfo in avsToCross)
-                                {
-                                    ScenePresence av = avinfo.av;
-                                    if (!av.IsInTransit) // just in case...
-                                    {
-                                        m_log.DebugFormat("[SCENE OBJECT]: Crossing avatar {0} to {1}", av.Name, val);
-
-                                        av.IsInTransit = true;
-
-                                        // A temporary measure to allow regression tests to work.
-                                        // Quite possibly, all BeginInvoke() calls should be replaced by Util.FireAndForget
-                                        // or similar since BeginInvoke() always uses the system threadpool to launch
-                                        // threads rather than any replace threadpool that we might be using.
-                                        if (Util.FireAndForgetMethod == FireAndForgetMethod.RegressionTest)
-                                        { 
-                                            entityTransfer.CrossAgentToNewRegionAsync(av, val, destination, av.Flying, version);
-                                            CrossAgentToNewRegionCompleted(av);
-                                        }
-                                        else
-                                        {
-                                            CrossAgentToNewRegionDelegate d = entityTransfer.CrossAgentToNewRegionAsync;
-                                            d.BeginInvoke(
-                                                av, val, destination, av.Flying, version, 
-                                                ar => CrossAgentToNewRegionCompleted(d.EndInvoke(ar)), null);
-                                        }
-                                    }
-                                    else
-                                    {
-                                        m_log.DebugFormat("[SCENE OBJECT]: Not crossing avatar {0} to {1} because it's already in transit", av.Name, val);
-                                    }
-                                }
-
-                                return;
-                            }
-                            else // cross failed, put avas back ??
-                            {
-                                foreach (avtocrossInfo avinfo in avsToCross)
-                                {
-                                    ScenePresence av = avinfo.av;
-                                    av.ParentUUID = UUID.Zero;
-                                    av.ParentID = avinfo.ParentID;
-                                }
-                            }
-                        }
-                        else
-                        {
-                            if (m_rootPart.KeyframeMotion != null)
-                                m_rootPart.KeyframeMotion.CrossingFailure();
-
-                            if (RootPart.PhysActor != null)
-                            {
-                                RootPart.PhysActor.CrossingFailure();
-                            }
-                        }
-
-                        Vector3 oldp = AbsolutePosition;
-                        val.X = Util.Clamp<float>(oldp.X, 0.5f, (float)m_scene.RegionInfo.RegionSizeX - 0.5f);
-                        val.Y = Util.Clamp<float>(oldp.Y, 0.5f, (float)m_scene.RegionInfo.RegionSizeY - 0.5f);
-                        val.Z = Util.Clamp<float>(oldp.Z, 0.5f, Constants.RegionHeight);
-=======
                     if (!inTransit)
                     {
                         inTransit = true;
                         SOGCrossDelegate d = CrossAsync;
                         d.BeginInvoke(this, val, CrossAsyncCompleted, d);
->>>>>>> avn/ubitvar
                     }
                     return;
                 }
@@ -1200,7 +1055,7 @@ namespace OpenSim.Region.Framework.Scenes
         /// No avatar should appear more than once in this list.
         /// Do not manipulate this list directly - use the Add/Remove sitting avatar methods on SceneObjectPart.
         /// </remarks>
-        protected internal List<ScenePresence> m_sittingAvatars = new List<ScenePresence>();
+        protected internal List<UUID> m_sittingAvatars = new List<UUID>();
 
         #endregion
 
@@ -1311,14 +1166,10 @@ namespace OpenSim.Region.Framework.Scenes
         /// </summary>
         public virtual void AttachToBackup()
         {
-<<<<<<< HEAD
-            if (CanBeBackedUp)
-=======
             if (IsAttachment) return;
             m_scene.SceneGraph.FireAttachToBackup(this);
 
-            if (InSceneBackup)
->>>>>>> avn/ubitvar
+//           if (InSceneBackup)
             {
 //                m_log.DebugFormat(
 //                    "[SCENE OBJECT GROUP]: Attaching object {0} {1} to scene presistence sweep", Name, UUID);
@@ -1431,21 +1282,12 @@ namespace OpenSim.Region.Framework.Scenes
         /// <returns></returns>
         public void GetAxisAlignedBoundingBoxRaw(out float minX, out float maxX, out float minY, out float maxY, out float minZ, out float maxZ)
         {
-<<<<<<< HEAD
-            maxX = -256f;
-            maxY = -256f;
-            maxZ = -256f;
-            minX = 10000f;
-            minY = 10000f;
-            minZ = 10000f;
-=======
             maxX = float.MinValue;
             maxY = float.MinValue;
             maxZ = float.MinValue;
             minX = float.MaxValue;
             minY = float.MaxValue;
             minZ = float.MaxValue;
->>>>>>> avn/ubitvar
 
             SceneObjectPart[] parts = m_parts.GetArray();
             foreach (SceneObjectPart part in parts)
@@ -1843,17 +1685,6 @@ namespace OpenSim.Region.Framework.Scenes
             }
         }
 
-<<<<<<< HEAD
-
-        /// <summary>
-        ///
-        /// </summary>
-        /// <param name="part"></param>
-        private void SetPartAsNonRoot(SceneObjectPart part)
-        {
-            part.ParentID = m_rootPart.LocalId;
-            part.ClearUndoState();
-=======
         /// <summary>
         /// Add the avatar to this linkset (avatar is sat).
         /// </summary>
@@ -1893,7 +1724,6 @@ namespace OpenSim.Region.Framework.Scenes
         public List<ScenePresence> GetLinkedAvatars()
         {
             return m_linkedAvatars;
->>>>>>> avn/ubitvar
         }
 
         /// <summary>
@@ -2197,14 +2027,7 @@ namespace OpenSim.Region.Framework.Scenes
 
                 if (Scene != null)
                 {
-<<<<<<< HEAD
-                    if (!sp.IsChildAgent && sp.ParentID == part.LocalId)
-                        sp.StandUp();
-
-                    if (!silent)
-=======
                     Scene.ForEachRootScenePresence(delegate(ScenePresence avatar)
->>>>>>> avn/ubitvar
                     {
                         if (avatar.ParentID == LocalId)
                             avatar.StandUp();
@@ -2504,16 +2327,6 @@ namespace OpenSim.Region.Framework.Scenes
         /// <returns></returns>
         public SceneObjectGroup Copy(bool userExposed)
         {
-<<<<<<< HEAD
-            // FIXME: This is dangerous since it's easy to forget to reset some references when necessary and end up 
-            // with bugs that only occur in some circumstances (e.g. crossing between regions on the same simulator
-            // but not between regions on different simulators).  Really, all copying should be done explicitly.
-            SceneObjectGroup dupe = (SceneObjectGroup)MemberwiseClone();
-
-            dupe.Backup = false;
-            dupe.m_parts = new MapAndArray<OpenMetaverse.UUID, SceneObjectPart>();
-            dupe.m_sittingAvatars = new List<ScenePresence>();
-=======
             m_dupeInProgress = true;
             SceneObjectGroup dupe = (SceneObjectGroup)MemberwiseClone();
             dupe.m_isBackedUp = false;
@@ -2525,7 +2338,6 @@ namespace OpenSim.Region.Framework.Scenes
             dupe.m_linkedAvatars = new List<ScenePresence>();
             dupe.m_sittingAvatars = new List<UUID>();
 
->>>>>>> avn/ubitvar
             dupe.CopyRootPart(m_rootPart, OwnerID, GroupID, userExposed);
             dupe.m_rootPart.LinkNum = m_rootPart.LinkNum;
             
@@ -2700,12 +2512,8 @@ namespace OpenSim.Region.Framework.Scenes
             return RootPart.Torque;
         }
 
-<<<<<<< HEAD
-        public void MoveToTarget(Vector3 target, float tau)
-=======
          // This is used by both Double-Click Auto-Pilot and llMoveToTarget() in an attached object
-        public void moveToTarget(Vector3 target, float tau)
->>>>>>> avn/ubitvar
+        public void MoveToTarget(Vector3 target, float tau)
         {
             if (IsAttachment)
             {
@@ -2732,21 +2540,7 @@ namespace OpenSim.Region.Framework.Scenes
             if (IsAttachment)
             {
                 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
-<<<<<<< HEAD
-
-                if (avatar != null)
-                    avatar.ResetMoveToTarget();
-            }
-            else
-            {
-                PhysicsActor pa = RootPart.PhysActor;
 
-                if (pa != null && pa.PIDActive)
-                {
-                    pa.PIDActive = false;
-                    
-                    ScheduleGroupForTerseUpdate();
-=======
                 if (avatar != null)
                 {
                     avatar.ResetMoveToTarget();
@@ -2786,7 +2580,6 @@ namespace OpenSim.Region.Framework.Scenes
                         rootpart.PhysActor.APIDDamping = damping;
                         rootpart.PhysActor.APIDActive = true;
                     }
->>>>>>> avn/ubitvar
                 }
             }
         }
@@ -3484,18 +3277,6 @@ namespace OpenSim.Region.Framework.Scenes
 
             linkPart.Rezzed = RootPart.Rezzed;
 
-<<<<<<< HEAD
-            // We must persist the delinked group to the database immediately, for safety. The problem
-            // is that although in memory the new group has a new SceneGroupID, in the database it
-            // still has the parent group's SceneGroupID (until the next backup). This means that if the
-            // parent group is deleted then the delinked group will also be deleted from the database.
-            // This problem will disappear if the region remains alive long enough for another backup,
-            // since at that time the delinked group's new SceneGroupID will be written to the database.
-            // But if the region crashes before that then the prims will be permanently gone, and this must
-            // not happen. (We can't use a just-in-time trick like GroupContainsForeignPrims in this case
-            // because the delinked group doesn't know when the source group is deleted.)
-            m_scene.ForceSceneObjectBackup(objectGroup);
-=======
             // When we delete a group, we currently have to force persist to the database if the object id has changed
             // (since delete works by deleting all rows which have a given object id)
 
@@ -3507,7 +3288,6 @@ namespace OpenSim.Region.Framework.Scenes
                 m_rootPart.PhysActor.Building = false;
 
             objectGroup.HasGroupChangedDueToDelink = true;
->>>>>>> avn/ubitvar
 
             if (sendEvents)
                 linkPart.TriggerScriptChangedEvent(Changed.LINK);
@@ -3521,13 +3301,9 @@ namespace OpenSim.Region.Framework.Scenes
         /// <param name="objectGroup"></param>
         public virtual void DetachFromBackup()
         {
-<<<<<<< HEAD
-            if (Backup && Scene != null)
-=======
             if (m_scene != null)
                 m_scene.SceneGraph.FireDetachFromBackup(this);
             if (m_isBackedUp && Scene != null)
->>>>>>> avn/ubitvar
                 m_scene.EventManager.OnBackup -= ProcessBackup;
             
             Backup = false;
@@ -3973,9 +3749,6 @@ namespace OpenSim.Region.Framework.Scenes
         {
             RootPart.UpdatePermissions(AgentID, field, localID, mask, addRemTF);
 
-<<<<<<< HEAD
-            AdjustChildPrimPermissions(Scene.Permissions.IsGod(AgentID));
-=======
             bool god = Scene.Permissions.IsGod(AgentID);
 
             if (field == 1 && god)
@@ -3986,8 +3759,7 @@ namespace OpenSim.Region.Framework.Scenes
                 });
             }
 
-            AdjustChildPrimPermissions();
->>>>>>> avn/ubitvar
+            AdjustChildPrimPermissions(false);
 
             if (field == 1 && god) // Base mask was set. Update all child part inventories
             {
@@ -5037,10 +4809,10 @@ namespace OpenSim.Region.Framework.Scenes
         /// down after it move one place down the list.
         /// </remarks>
         /// <returns>A list of the sitting avatars.  Returns an empty list if there are no sitting avatars.</returns>
-        public List<ScenePresence> GetSittingAvatars()
+        public List<UUID> GetSittingAvatars()
         {
             lock (m_sittingAvatars)
-                return new List<ScenePresence>(m_sittingAvatars);
+                return new List<UUID>(m_sittingAvatars);
         }
 
         /// <summary>

+ 26 - 104
OpenSim/Region/Framework/Scenes/SceneObjectPart.cs

@@ -1046,39 +1046,22 @@ namespace OpenSim.Region.Framework.Scenes
             }
             set
             {
-<<<<<<< HEAD
                 if (Util.IsNanOrInfinity(value))
                     m_angularVelocity = Vector3.Zero;
                 else
                     m_angularVelocity = value;
 
-                PhysicsActor actor = PhysActor;
-                if ((actor != null) && actor.IsPhysical)
-                    actor.RotationalVelocity = m_angularVelocity;
-=======
-                m_angularVelocity = value;
                 PhysicsActor actor = PhysActor;
                 if ((actor != null) && actor.IsPhysical && ParentGroup.RootPart == this && VehicleType == (int)Vehicle.TYPE_NONE)
                 {
                     actor.RotationalVelocity = m_angularVelocity;
                 }                       
->>>>>>> avn/ubitvar
             }
         }
 
         /// <summary></summary>
         public Vector3 Acceleration
         {
-<<<<<<< HEAD
-            get { return m_acceleration; }
-            set 
-            {
-                if (Util.IsNanOrInfinity(value))
-                    m_acceleration = Vector3.Zero;
-                else
-                    m_acceleration = value;
-            }
-=======
 			get 
 			{ 
                 PhysicsActor actor = PhysActor;
@@ -1088,9 +1071,14 @@ namespace OpenSim.Region.Framework.Scenes
 				}
 				return m_acceleration;
 			} 
-            
-            set { m_acceleration = value; }
->>>>>>> avn/ubitvar
+           
+            set 
+            {
+                if (Util.IsNanOrInfinity(value))
+                    m_acceleration = Vector3.Zero;
+                else
+                    m_acceleration = value;
+            }
         }
 
         public string Description { get; set; }
@@ -1431,7 +1419,7 @@ namespace OpenSim.Region.Framework.Scenes
         /// <value>
         /// null if there are no sitting avatars.  This is to save us create a hashset for every prim in a scene.
         /// </value>
-        private HashSet<ScenePresence> m_sittingAvatars;
+        private HashSet<UUID> m_sittingAvatars;
 
         public virtual UUID RegionID
         {
@@ -1932,7 +1920,6 @@ namespace OpenSim.Region.Framework.Scenes
 
         public void AddTextureAnimation(Primitive.TextureAnimation pTexAnim)
         {
-<<<<<<< HEAD
             byte[] data;
 
             if (pTexAnim.Flags == Primitive.TextureAnimMode.ANIM_OFF)
@@ -1944,13 +1931,6 @@ namespace OpenSim.Region.Framework.Scenes
                 data = new byte[16];
                 int pos = 0;
 
-=======
-            if (((int)pTexAnim.Flags & 1) != 0) // ANIM_ON
-            {
-                byte[] data = new byte[16];
-                int pos = 0;
-
->>>>>>> avn/ubitvar
                 // The flags don't like conversion from uint to byte, so we have to do
                 // it the crappy way.  See the above function :(
 
@@ -1962,17 +1942,9 @@ namespace OpenSim.Region.Framework.Scenes
                 Utils.FloatToBytes(pTexAnim.Start).CopyTo(data, pos);
                 Utils.FloatToBytes(pTexAnim.Length).CopyTo(data, pos + 4);
                 Utils.FloatToBytes(pTexAnim.Rate).CopyTo(data, pos + 8);
-<<<<<<< HEAD
-            }
-=======
->>>>>>> avn/ubitvar
-
-                m_TextureAnimation = data;
-            }
-            else
-            {
-                m_TextureAnimation = Utils.EmptyBytes;
+               
             }
+            m_TextureAnimation = data;
         }
 
         public void AdjustSoundGain(double volume)
@@ -2240,7 +2212,7 @@ namespace OpenSim.Region.Framework.Scenes
             Array.Copy(Shape.ExtraParams, extraP, extraP.Length);
             dupe.Shape.ExtraParams = extraP;
 
-            dupe.m_sittingAvatars = new HashSet<ScenePresence>();
+            dupe.m_sittingAvatars = new HashSet<UUID>();
 
             // safeguard  actual copy is done in sog.copy
             dupe.KeyframeMotion = null;
@@ -2829,7 +2801,7 @@ namespace OpenSim.Region.Framework.Scenes
                     CollidingMessage = CreateColliderArgs(this, colliders);
 
                     if (CollidingMessage.Colliders.Count > 0)
-                        DoNotify(notify, LocalId, CollidingMessage);
+                        notify(LocalId, CollidingMessage);
 
                     if (PassCollisions)
                         sendToRoot = true;
@@ -2843,7 +2815,7 @@ namespace OpenSim.Region.Framework.Scenes
                 {
                     CollidingMessage = CreateColliderArgs(ParentGroup.RootPart, colliders);
                     if (CollidingMessage.Colliders.Count > 0)
-                        DoNotify(notify, ParentGroup.RootPart.LocalId, CollidingMessage);
+                        notify(ParentGroup.RootPart.LocalId, CollidingMessage);
                 }
             }
         }
@@ -2858,35 +2830,6 @@ namespace OpenSim.Region.Framework.Scenes
             colliding.Add(CreateDetObjectForGround());
             LandCollidingMessage.Colliders = colliding;
 
-<<<<<<< HEAD
-                DoNotify(notify, LocalId, LandCollidingMessage);
-            }
-        }
-
-        private void DoNotify(ScriptCollidingNotification notify, uint id, ColliderArgs collargs)
-        {
-            if (m_parentGroup != null && ParentGroup.Scene != null && ParentGroup.Scene.ShouldUseFireAndForgetForCollisions)
-            {
-                // For those learning C#, FireAndForget takes a function, an object to pass
-                //    to that function and an ID string. The "oo => {}" construct is a lambda expression
-                //    for a function with one arguement ('oo'). The 'new Object[] {}" construct creates an Object
-                //    that is an object array and initializes it with three items (the parameters
-                //    being passed). The parameters passed are the function to call ('notify') and
-                //    its two arguements. Finally, once in the function (called later by the FireAndForget
-                //    thread scheduler), the passed object is cast to an object array and then each
-                //    of its items (aoo[0] to aoo[2]) are individually cast to what they are and
-                //    then used in a call of the passed ScriptCollidingNotification function.
-                Util.FireAndForget(oo =>
-                {
-                    Object[] aoo = (Object[])oo;
-                    ((ScriptCollidingNotification)aoo[0])((uint)aoo[1], (ColliderArgs)aoo[2]);
-
-                }, new Object[] { notify, id, collargs }, "SOP.Collision");
-            }
-            else
-            {
-                notify(id, collargs);
-=======
             if (Inventory.ContainsScripts())
             {
                 if (!PassCollisions)
@@ -2898,7 +2841,6 @@ namespace OpenSim.Region.Framework.Scenes
             if ((ParentGroup.RootPart.ScriptEvents & ev) != 0 && sendToRoot)
             {
                 notify(ParentGroup.RootPart.LocalId, LandCollidingMessage);
->>>>>>> avn/ubitvar
             }
         }
 
@@ -3046,12 +2988,7 @@ namespace OpenSim.Region.Framework.Scenes
 
             if (pa != null)
             {
-<<<<<<< HEAD
                 Vector3 newpos = pa.Position;
-=======
-                Vector3 newpos = new Vector3(pa.Position.GetBytes(), 0);
-                
->>>>>>> avn/ubitvar
                 if (!ParentGroup.Scene.PositionIsInCurrentRegion(newpos))
                 {
                     // Setting position outside current region will start region crossing
@@ -3996,14 +3933,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
 
         public void StopMoveToTarget()
         {
-<<<<<<< HEAD
             ParentGroup.StopMoveToTarget();
-=======
-            ParentGroup.stopMoveToTarget();
-
-//            ParentGroup.ScheduleGroupForTerseUpdate();
-            //ParentGroup.ScheduleGroupForFullUpdate();
->>>>>>> avn/ubitvar
         }
 
         public void StoreUndoState(ObjectChangeType change)
@@ -4665,8 +4595,6 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
 
         public void ClonePermissions(SceneObjectPart source)
         {
-            bool update = false;
-
             uint prevOwnerMask = OwnerMask;
             uint prevGroupMask = GroupMask;
             uint prevEveryoneMask = EveryoneMask;
@@ -4851,12 +4779,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
                     }
                     else // it already has a physical representation
                     {
-<<<<<<< HEAD
-                        pa.SetMaterial(Material);
-                        pa.Position = GetWorldPosition();
-                        pa.Orientation = GetWorldRotation();
-                        DoPhysicsPropertyUpdate(UsePhysics, true);
-=======
+
                         DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status.
 /* moved into DoPhysicsPropertyUpdate
                         if(VolumeDetectActive)
@@ -4864,7 +4787,6 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
                         else
                             pa.SetVolumeDetect(0);
 */
->>>>>>> avn/ubitvar
 
                         if (pa.Building != building)
                             pa.Building = building;
@@ -5621,19 +5543,19 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
         /// true if the avatar was not already recorded, false otherwise.
         /// </returns>
         /// <param name='avatarId'></param>
-        protected internal bool AddSittingAvatar(ScenePresence sp)
+        protected internal bool AddSittingAvatar(UUID id)
         {
             lock (ParentGroup.m_sittingAvatars)
             {
                 if (IsSitTargetSet && SitTargetAvatar == UUID.Zero)
-                    SitTargetAvatar = sp.UUID;
+                    SitTargetAvatar = id;
 
                 if (m_sittingAvatars == null)
-                    m_sittingAvatars = new HashSet<ScenePresence>();
+                    m_sittingAvatars = new HashSet<UUID>();
 
-                if (m_sittingAvatars.Add(sp))
+                if (m_sittingAvatars.Add(id))
                 {
-                    ParentGroup.m_sittingAvatars.Add(sp);
+                    ParentGroup.m_sittingAvatars.Add(id);
 
                     return true;
                 }
@@ -5650,22 +5572,22 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
         /// true if the avatar was present and removed, false if it was not present.
         /// </returns>
         /// <param name='avatarId'></param>
-        protected internal bool RemoveSittingAvatar(ScenePresence sp)
+        protected internal bool RemoveSittingAvatar(UUID id)
         {
             lock (ParentGroup.m_sittingAvatars)
             {
-                if (SitTargetAvatar == sp.UUID)
+                if (SitTargetAvatar == id)
                     SitTargetAvatar = UUID.Zero;
 
                 if (m_sittingAvatars == null)
                     return false;
 
-                if (m_sittingAvatars.Remove(sp))
+                if (m_sittingAvatars.Remove(id))
                 {
                     if (m_sittingAvatars.Count == 0)
                         m_sittingAvatars = null;
 
-                    ParentGroup.m_sittingAvatars.Remove(sp);
+                    ParentGroup.m_sittingAvatars.Remove(id);
 
                     return true;
                 }
@@ -5679,14 +5601,14 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
         /// </summary>
         /// <remarks>This applies to all sitting avatars whether there is a sit target set or not.</remarks>
         /// <returns>A hashset of the sitting avatars.  Returns null if there are no sitting avatars.</returns>
-        public HashSet<ScenePresence> GetSittingAvatars()
+        public HashSet<UUID> GetSittingAvatars()
         {
             lock (ParentGroup.m_sittingAvatars)
             {
                 if (m_sittingAvatars == null)
                     return null;
                 else
-                    return new HashSet<ScenePresence>(m_sittingAvatars);
+                    return new HashSet<UUID>(m_sittingAvatars);
             }
         }
 

+ 0 - 13
OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs

@@ -892,16 +892,8 @@ namespace OpenSim.Region.Framework.Scenes
                 offsetHeight = 0;
                 return false;
             }
-<<<<<<< HEAD
-
-            Vector3 bbox;
-            float offsetHeight;
-
-            m_part.ParentGroup.Scene.GetObjectsToRez(rezAsset.Data, false, out objlist, out veclist, out bbox, out offsetHeight);
-=======
           
             bool single = m_part.ParentGroup.Scene.GetObjectsToRez(rezAsset.Data, false, out objlist, out veclist, out bbox, out offsetHeight);
->>>>>>> avn/ubitvar
 
             for (int i = 0; i < objlist.Count; i++)
             {
@@ -1068,12 +1060,7 @@ namespace OpenSim.Region.Framework.Scenes
                 m_items.LockItemsForRead(false);
                 if (type == 10) // Script
                 {
-<<<<<<< HEAD
-                    // route it through here, to handle script cleanup tasks
-                    RemoveScriptInstance(itemID, false);
-=======
                     m_part.ParentGroup.Scene.EventManager.TriggerRemoveScript(m_part.LocalId, itemID);
->>>>>>> avn/ubitvar
                 }
                 m_items.LockItemsForWrite(true);
                 m_items.Remove(itemID);

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä