From 6dcc4ab466134008c28f82d85cc4dabec984dd10 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 8 Feb 2010 22:50:59 +0000
Subject: Add license header and change branded namespace to generic
---
OpenSim/Tools/Configger/ConfigurationLoader.cs | 29 +++++++++++++++++++++++++-
OpenSim/Tools/Configger/Main.cs | 29 +++++++++++++++++++++++++-
OpenSim/Tools/Configger/Util.cs | 29 +++++++++++++++++++++++++-
3 files changed, 84 insertions(+), 3 deletions(-)
diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs
index 49af417..1619a22 100644
--- a/OpenSim/Tools/Configger/ConfigurationLoader.cs
+++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs
@@ -1,3 +1,30 @@
+/*
+ * 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.IO;
@@ -7,7 +34,7 @@ using System.Xml;
using log4net;
using Nini.Config;
-namespace Careminster
+namespace OpenSim.Tools.Configger
{
///
/// Loads the Configuration files into nIni
diff --git a/OpenSim/Tools/Configger/Main.cs b/OpenSim/Tools/Configger/Main.cs
index 192cfce..61a12e3 100644
--- a/OpenSim/Tools/Configger/Main.cs
+++ b/OpenSim/Tools/Configger/Main.cs
@@ -1,7 +1,34 @@
+/*
+ * 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 Nini.Config;
using System;
-namespace Careminster
+namespace OpenSim.Tools.Configger
{
public class Configger
{
diff --git a/OpenSim/Tools/Configger/Util.cs b/OpenSim/Tools/Configger/Util.cs
index 6f8aa76..fe7744d 100644
--- a/OpenSim/Tools/Configger/Util.cs
+++ b/OpenSim/Tools/Configger/Util.cs
@@ -1,3 +1,30 @@
+/*
+ * 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;
using System.Collections.Generic;
@@ -13,7 +40,7 @@ using System.Threading;
using log4net;
using Nini.Config;
-namespace Careminster
+namespace OpenSim.Tools.Configger
{
public static class Util
{
--
cgit v1.1
From 1d4d6c821adec37060341e62010973b860cc900a Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 9 Feb 2010 20:25:24 +0000
Subject: Add missing refernce to prebuild (backport from presence-refactor)
---
prebuild.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/prebuild.xml b/prebuild.xml
index ac4400d..8761a15 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -2900,6 +2900,7 @@
../../../bin/
+
--
cgit v1.1
From 802a969267da9ed2780ea66c736c3d531e336dfa Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 12 Feb 2010 21:32:03 +0000
Subject: Fix http://opensimulator.org/mantis/view.php?id=4224 This resolves
the problem where eyes and hair would turn white on standalone configurations
When a client receives body part information, for some insane reason or other
it always ends up uploading this back to the server and then immediately
re-requesting it. This should have been okay since we stored that asset in
cache. However, the standalone asset service connector was not checking this
cache properly, so every time the client made the request for the asset it
has just loaded it would get a big fat null back in the face, causing it to
make clothes and hair white. This bug did not affect grids since they use a
different service connector.
---
OpenSim/Data/MySQL/MySQLUserData.cs | 5 ---
OpenSim/Framework/AvatarAppearance.cs | 16 ++------
.../Framework/Communications/UserManagerBase.cs | 3 +-
.../Region/ClientStack/LindenUDP/LLClientView.cs | 6 +--
.../AssetTransaction/AssetTransactionModule.cs | 8 +++-
.../Agent/AssetTransaction/AssetXferUploader.cs | 3 +-
.../Region/CoreModules/Asset/CenomeAssetCache.cs | 27 ++++++------
.../Asset/LocalAssetServiceConnector.cs | 48 ++++++++++++----------
.../Inventory/LocalInventoryServiceConnector.cs | 25 +++++++----
OpenSim/Region/Framework/Scenes/Scene.cs | 1 -
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +
OpenSim/Services/AssetService/AssetService.cs | 8 ++--
.../Connectors/Asset/AssetServiceConnector.cs | 2 +-
13 files changed, 82 insertions(+), 72 deletions(-)
diff --git a/OpenSim/Data/MySQL/MySQLUserData.cs b/OpenSim/Data/MySQL/MySQLUserData.cs
index 2cf88b8..0a9d2e3 100644
--- a/OpenSim/Data/MySQL/MySQLUserData.cs
+++ b/OpenSim/Data/MySQL/MySQLUserData.cs
@@ -622,11 +622,6 @@ namespace OpenSim.Data.MySQL
return false;
}
- ///
- /// Appearance
- /// TODO: stubs for now to get us to a compiling state gently
- /// override
- ///
public override AvatarAppearance GetUserAppearance(UUID user)
{
try
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 56fcc15..a3ea499 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -69,9 +69,7 @@ namespace OpenSim.Framework
private static UUID HAIR_ASSET = new UUID("d342e6c0-b9d2-11dc-95ff-0800200c9a66");
private static UUID HAIR_ITEM = new UUID("d342e6c1-b9d2-11dc-95ff-0800200c9a66");
- public readonly static int VISUALPARAM_COUNT = 218;
-
-
+ public readonly static int VISUALPARAM_COUNT = 218;
protected UUID m_owner;
@@ -346,11 +344,7 @@ namespace OpenSim.Framework
}
*/
-
- public AvatarAppearance()
- : this(UUID.Zero)
- {
- }
+ public AvatarAppearance() : this(UUID.Zero) {}
public AvatarAppearance(UUID owner)
{
@@ -367,10 +361,8 @@ namespace OpenSim.Framework
// This sets Visual Params with *less* weirder values then default. Instead of a ugly alien, it looks like a fat scientist
SetDefaultParams(m_visualparams);
SetDefaultWearables();
- m_texture = GetDefaultTexture();
-
+ m_texture = GetDefaultTexture();
}
-
public AvatarAppearance(UUID avatarID, AvatarWearable[] wearables, byte[] visualParams)
{
@@ -1481,4 +1473,4 @@ namespace OpenSim.Framework
SKIRT_SKIRT_BLUE = 217
}
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index 4f0af06..02be141 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -785,7 +785,8 @@ namespace OpenSim.Framework.Communications
}
catch (Exception e)
{
- m_log.ErrorFormat("[USERSTORAGE]: Unable to find user appearance {0} via {1} ({2})", user.ToString(), plugin.Name, e.ToString());
+ m_log.ErrorFormat(
+ "[USERSTORAGE]: Unable to find user appearance {0} via {1} ({2})", user, plugin.Name, e);
}
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 6dc6f01..e38232c 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -3301,9 +3301,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
awb.ItemID = wearables[i].ItemID;
aw.WearableData[i] = awb;
- // m_log.DebugFormat(
- // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}",
- // awb.ItemID, awb.AssetID, i, Name);
+// m_log.DebugFormat(
+// "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}",
+// awb.ItemID, awb.AssetID, i, Name);
}
OutPacket(aw, ThrottleOutPacketType.Task);
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
index 1077f4a..7e08ecf 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
@@ -27,6 +27,8 @@
using System;
using System.Collections.Generic;
+using System.Reflection;
+using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Framework;
@@ -37,6 +39,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
{
public class AssetTransactionModule : IRegionModule, IAgentAssetTransactions
{
+// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
private readonly Dictionary RegisteredScenes = new Dictionary();
private bool m_dumpAssetsToFile = false;
private Scene m_scene = null;
@@ -226,7 +230,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
public void HandleUDPUploadRequest(IClientAPI remoteClient, UUID assetID, UUID transaction, sbyte type,
byte[] data, bool storeLocal, bool tempFile)
{
- //m_log.Debug("HandleUDPUploadRequest - assetID: " + assetID.ToString() + " transaction: " + transaction.ToString() + " type: " + type.ToString() + " storelocal: " + storeLocal + " tempFile: " + tempFile);
+// m_log.Debug("HandleUDPUploadRequest - assetID: " + assetID.ToString() + " transaction: " + transaction.ToString() + " type: " + type.ToString() + " storelocal: " + storeLocal + " tempFile: " + tempFile);
+
if (((AssetType)type == AssetType.Texture ||
(AssetType)type == AssetType.Sound ||
(AssetType)type == AssetType.TextureTGA ||
@@ -246,7 +251,6 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
}
}
- //m_log.Debug("asset upload of " + assetID);
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
AssetXferUploader uploader = transactions.RequestXferUploader(transaction);
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
index f698ea1..fa92fe8 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
@@ -154,7 +154,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
m_userTransactions.Manager.MyScene.AssetService.Store(m_asset);
}
- m_log.DebugFormat("[ASSET TRANSACTIONS]: Uploaded asset data for transaction {0}", TransactionID);
+ m_log.DebugFormat(
+ "[ASSET TRANSACTIONS]: Uploaded asset {0} for transaction {1}", m_asset.FullID, TransactionID);
if (m_dumpAssetToFile)
{
diff --git a/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs b/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs
index 1add0ab..1903eb9 100644
--- a/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs
+++ b/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs
@@ -91,6 +91,8 @@ namespace OpenSim.Region.CoreModules.Asset
///
public class CenomeMemoryAssetCache : IImprovedAssetCache, ISharedRegionModule
{
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
///
/// Cache's default maximal asset count.
///
@@ -115,12 +117,7 @@ namespace OpenSim.Region.CoreModules.Asset
/// Asset's default expiration time in the cache.
///
public static readonly TimeSpan DefaultExpirationTime = TimeSpan.FromMinutes(30.0);
-
- ///
- /// Log manager instance.
- ///
- private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
+
///
/// Cache object.
///
@@ -170,7 +167,7 @@ namespace OpenSim.Region.CoreModules.Asset
{
if (maximalSize <= 0 || maximalCount <= 0)
{
- //Log.Debug("[ASSET CACHE]: Cenome asset cache is not enabled.");
+ //m_log.Debug("[ASSET CACHE]: Cenome asset cache is not enabled.");
m_enabled = false;
return;
}
@@ -186,7 +183,7 @@ namespace OpenSim.Region.CoreModules.Asset
CnmSynchronizedCache.Synchronized(new CnmMemoryCache(
maximalSize, maximalCount, expirationTime));
m_enabled = true;
- Log.DebugFormat(
+ m_log.DebugFormat(
"[ASSET CACHE]: Cenome asset cache enabled (MaxSize = {0} bytes, MaxCount = {1}, ExpirationTime = {2})",
maximalSize,
maximalCount,
@@ -205,6 +202,8 @@ namespace OpenSim.Region.CoreModules.Asset
{
if (asset != null)
{
+// m_log.DebugFormat("[CENOME ASSET CACHE]: Caching asset {0}", asset.ID);
+
long size = asset.Data != null ? asset.Data.Length : 1;
m_cache.Set(asset.ID, asset, size);
m_cachedCount++;
@@ -255,7 +254,7 @@ namespace OpenSim.Region.CoreModules.Asset
if (m_getCount == m_debugEpoch)
{
- Log.DebugFormat(
+ m_log.DebugFormat(
"[ASSET CACHE]: Cached = {0}, Get = {1}, Hits = {2}%, Size = {3} bytes, Avg. A. Size = {4} bytes",
m_cachedCount,
m_getCount,
@@ -267,6 +266,9 @@ namespace OpenSim.Region.CoreModules.Asset
m_cachedCount = 0;
}
+// if (null == assetBase)
+// m_log.DebugFormat("[CENOME ASSET CACHE]: Asset {0} not in cache", id);
+
return assetBase;
}
@@ -325,12 +327,11 @@ namespace OpenSim.Region.CoreModules.Asset
return;
string name = moduleConfig.GetString("AssetCaching");
- //Log.DebugFormat("[XXX] name = {0} (this module's name: {1}", name, Name);
+ //m_log.DebugFormat("[XXX] name = {0} (this module's name: {1}", name, Name);
if (name != Name)
- return;
-
- // This module is used
+ return;
+
long maxSize = DefaultMaxSize;
int maxCount = DefaultMaxCount;
TimeSpan expirationTime = DefaultExpirationTime;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs
index fd3aaf4..2f21e6d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/LocalAssetServiceConnector.cs
@@ -38,12 +38,9 @@ using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
{
- public class LocalAssetServicesConnector :
- ISharedRegionModule, IAssetService
+ public class LocalAssetServicesConnector : ISharedRegionModule, IAssetService
{
- private static readonly ILog m_log =
- LogManager.GetLogger(
- MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IImprovedAssetCache m_Cache = null;
@@ -72,7 +69,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
IConfig assetConfig = source.Configs["AssetService"];
if (assetConfig == null)
{
- m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpenSim.ini");
+ m_log.Error("[LOCAL ASSET SERVICES CONNECTOR]: AssetService missing from OpenSim.ini");
return;
}
@@ -81,22 +78,20 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
if (serviceDll == String.Empty)
{
- m_log.Error("[ASSET CONNECTOR]: No LocalServiceModule named in section AssetService");
+ m_log.Error("[LOCAL ASSET SERVICES CONNECTOR]: No LocalServiceModule named in section AssetService");
return;
}
Object[] args = new Object[] { source };
- m_AssetService =
- ServerUtils.LoadPlugin(serviceDll,
- args);
+ m_AssetService = ServerUtils.LoadPlugin(serviceDll, args);
if (m_AssetService == null)
{
- m_log.Error("[ASSET CONNECTOR]: Can't load asset service");
+ m_log.Error("[LOCAL ASSET SERVICES CONNECTOR]: Can't load asset service");
return;
}
m_Enabled = true;
- m_log.Info("[ASSET CONNECTOR]: Local asset connector enabled");
+ m_log.Info("[LOCAL ASSET SERVICES CONNECTOR]: Local asset connector enabled");
}
}
}
@@ -134,11 +129,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
m_Cache = null;
}
- m_log.InfoFormat("[ASSET CONNECTOR]: Enabled local assets for region {0}", scene.RegionInfo.RegionName);
+ m_log.InfoFormat("[LOCAL ASSET SERVICES CONNECTOR]: Enabled local assets for region {0}", scene.RegionInfo.RegionName);
if (m_Cache != null)
{
- m_log.InfoFormat("[ASSET CONNECTOR]: Enabled asset caching for region {0}", scene.RegionInfo.RegionName);
+ m_log.InfoFormat("[LOCAL ASSET SERVICES CONNECTOR]: Enabled asset caching for region {0}", scene.RegionInfo.RegionName);
}
else
{
@@ -151,6 +146,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
public AssetBase Get(string id)
{
+// m_log.DebugFormat("[LOCAL ASSET SERVICES CONNECTOR]: Synchronously requesting asset {0}", id);
+
AssetBase asset = null;
if (m_Cache != null)
asset = m_Cache.Get(id);
@@ -160,7 +157,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
asset = m_AssetService.Get(id);
if ((m_Cache != null) && (asset != null))
m_Cache.Cache(asset);
+
+// if (null == asset)
+// m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not synchronously find asset with id {0}", id);
}
+
return asset;
}
@@ -204,15 +205,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
public bool Get(string id, Object sender, AssetRetrieved handler)
{
- AssetBase asset = null;
-
+// m_log.DebugFormat("[LOCAL ASSET SERVICES CONNECTOR]: Asynchronously requesting asset {0}", id);
+
if (m_Cache != null)
- m_Cache.Get(id);
-
- if (asset != null)
{
- Util.FireAndForget(delegate { handler(id, sender, asset); });
- return true;
+ AssetBase asset = m_Cache.Get(id);
+
+ if (asset != null)
+ {
+ Util.FireAndForget(delegate { handler(id, sender, asset); });
+ return true;
+ }
}
return m_AssetService.Get(id, sender, delegate (string assetID, Object s, AssetBase a)
@@ -220,6 +223,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset
if ((a != null) && (m_Cache != null))
m_Cache.Cache(a);
+// if (null == a)
+// m_log.WarnFormat("[LOCAL ASSET SERVICES CONNECTOR]: Could not asynchronously find asset with id {0}", id);
+
Util.FireAndForget(delegate { handler(assetID, s, a); });
});
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
index 66d11dd..3883dc6 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
@@ -73,7 +73,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
IConfig inventoryConfig = source.Configs["InventoryService"];
if (inventoryConfig == null)
{
- m_log.Error("[INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
+ m_log.Error("[LOCAL INVENTORY SERVICES CONNECTOR]: InventoryService missing from OpenSim.ini");
return;
}
@@ -81,18 +81,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (serviceDll == String.Empty)
{
- m_log.Error("[INVENTORY CONNECTOR]: No LocalServiceModule named in section InventoryService");
+ m_log.Error("[LOCAL INVENTORY SERVICES CONNECTOR]: No LocalServiceModule named in section InventoryService");
return;
}
Object[] args = new Object[] { source };
- m_log.DebugFormat("[INVENTORY CONNECTOR]: Service dll = {0}", serviceDll);
+ m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Service dll = {0}", serviceDll);
m_InventoryService = ServerUtils.LoadPlugin(serviceDll, args);
if (m_InventoryService == null)
{
- m_log.Error("[INVENTORY CONNECTOR]: Can't load inventory service");
+ m_log.Error("[LOCAL INVENTORY SERVICES CONNECTOR]: Can't load inventory service");
//return;
throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's");
}
@@ -111,7 +111,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
Init(source);
m_Enabled = true;
- m_log.Info("[INVENTORY CONNECTOR]: Local inventory connector enabled");
+ m_log.Info("[LOCAL INVENTORY SERVICES CONNECTOR]: Local inventory connector enabled");
}
}
}
@@ -138,7 +138,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
}
// m_log.DebugFormat(
-// "[INVENTORY CONNECTOR]: Registering IInventoryService to scene {0}", scene.RegionInfo.RegionName);
+// "[LOCAL INVENTORY SERVICES CONNECTOR]: Registering IInventoryService to scene {0}", scene.RegionInfo.RegionName);
scene.RegisterModuleInterface(this);
m_cache.AddRegion(scene);
@@ -158,7 +158,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return;
m_log.InfoFormat(
- "[INVENTORY CONNECTOR]: Enabled local invnetory for region {0}", scene.RegionInfo.RegionName);
+ "[LOCAL INVENTORY SERVICES CONNECTOR]: Enabled local inventory for region {0}", scene.RegionInfo.RegionName);
}
#region IInventoryService
@@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return folders;
}
}
- m_log.WarnFormat("[INVENTORY CONNECTOR]: System folders for {0} not found", userID);
+ m_log.WarnFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: System folders for {0} not found", userID);
return new Dictionary();
}
@@ -312,7 +312,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public override InventoryItemBase GetItem(InventoryItemBase item)
{
- return m_InventoryService.GetItem(item);
+// m_log.DebugFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Requesting inventory item {0}", item.ID);
+
+ item = m_InventoryService.GetItem(item);
+
+ if (null == item)
+ m_log.ErrorFormat("[LOCAL INVENTORY SERVICES CONNECTOR]: Could not find item with id {0}");
+
+ return item;
}
public override InventoryFolderBase GetFolder(InventoryFolderBase folder)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index ddebd0b..2909311 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3120,7 +3120,6 @@ namespace OpenSim.Region.Framework.Scenes
m_log.DebugFormat("[APPEARANCE]: Appearance not found in {0}, returning default", RegionInfo.RegionName);
appearance = new AvatarAppearance(client.AgentId);
}
-
}
///
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 6b95624..9c7559b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2505,6 +2505,8 @@ namespace OpenSim.Region.Framework.Scenes
///
public void SendWearables()
{
+ m_log.DebugFormat("[SCENE]: Received request for wearables of {0}", Name);
+
ControllingClient.SendWearables(m_appearance.Wearables, m_appearance.Serial++);
}
diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs
index df33db2..a91b632 100644
--- a/OpenSim/Services/AssetService/AssetService.cs
+++ b/OpenSim/Services/AssetService/AssetService.cs
@@ -76,17 +76,19 @@ namespace OpenSim.Services.AssetService
});
}
- m_log.Info("[ASSET CONNECTOR]: Local asset service enabled");
+ m_log.Info("[ASSET SERVICE]: Local asset service enabled");
}
}
public AssetBase Get(string id)
- {
- //m_log.DebugFormat("[ASSET SERVICE]: Get asset {0}", id);
+ {
UUID assetID;
if (!UUID.TryParse(id, out assetID))
+ {
+ m_log.WarnFormat("[ASSET SERVICE]: Could not parse requested sset id {0}", id);
return null;
+ }
return m_Database.GetAsset(assetID);
}
diff --git a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
index 8e311d7..6d442b7 100644
--- a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
@@ -93,7 +93,7 @@ namespace OpenSim.Services.Connectors
}
public AssetBase Get(string id)
- {
+ {
string uri = m_ServerURI + "/assets/" + id;
AssetBase asset = null;
--
cgit v1.1
From aad95fcff5e03a48dbc1586b86d51b4b0ed88290 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 12 Feb 2010 22:45:59 +0000
Subject: minor: remove completely commented out and unused class
---
.../AgentAssetTransactionsManager.cs | 226 ---------------------
1 file changed, 226 deletions(-)
delete mode 100644 OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs
deleted file mode 100644
index 9c646b6..0000000
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * 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.Reflection;
-//using log4net;
-
-namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
-{
- /*
- public class AgentAssetTransactionsManager
- {
- //private static readonly ILog m_log
- // = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- ///
- /// Each agent has its own singleton collection of transactions
- ///
- private Dictionary AgentTransactions =
- new Dictionary();
-
- ///
- /// Should we dump uploaded assets to the filesystem?
- ///
- private bool m_dumpAssetsToFile;
-
- public Scene MyScene;
-
- public AgentAssetTransactionsManager(Scene scene, bool dumpAssetsToFile)
- {
- MyScene = scene;
- m_dumpAssetsToFile = dumpAssetsToFile;
- }
-
- ///
- /// Get the collection of asset transactions for the given user. If one does not already exist, it
- /// is created.
- ///
- ///
- ///
- private AgentAssetTransactions GetUserTransactions(UUID userID)
- {
- lock (AgentTransactions)
- {
- if (!AgentTransactions.ContainsKey(userID))
- {
- AgentAssetTransactions transactions = null;
- //= new AgentAssetTransactions(userID, this, m_dumpAssetsToFile);
- AgentTransactions.Add(userID, transactions);
- }
-
- return AgentTransactions[userID];
- }
- }
-
- ///
- /// Remove the given agent asset transactions. This should be called when a client is departing
- /// from a scene (and hence won't be making any more transactions here).
- ///
- ///
- public void RemoveAgentAssetTransactions(UUID userID)
- {
- // m_log.DebugFormat("Removing agent asset transactions structure for agent {0}", userID);
-
- lock (AgentTransactions)
- {
- AgentTransactions.Remove(userID);
- }
- }
-
- ///
- /// Create an inventory item from data that has been received through a transaction.
- ///
- /// This is called when new clothing or body parts are created. It may also be called in other
- /// situations.
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public void HandleItemCreationFromTransaction(IClientAPI remoteClient, UUID transactionID, UUID folderID,
- uint callbackID, string description, string name, sbyte invType,
- sbyte type, byte wearableType, uint nextOwnerMask)
- {
-// m_log.DebugFormat(
-// "[TRANSACTIONS MANAGER] Called HandleItemCreationFromTransaction with item {0}", name);
-
- AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
-
- transactions.RequestCreateInventoryItem(
- remoteClient, transactionID, folderID, callbackID, description,
- name, invType, type, wearableType, nextOwnerMask);
- }
-
- ///
- /// Update an inventory item with data that has been received through a transaction.
- ///
- /// This is called when clothing or body parts are updated (for instance, with new textures or
- /// colours). It may also be called in other situations.
- ///
- ///
- ///
- ///
- public void HandleItemUpdateFromTransaction(IClientAPI remoteClient, UUID transactionID,
- InventoryItemBase item)
- {
-// m_log.DebugFormat(
-// "[TRANSACTIONS MANAGER] Called HandleItemUpdateFromTransaction with item {0}",
-// item.Name);
-
- AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
-
- transactions.RequestUpdateInventoryItem(remoteClient, transactionID, item);
- }
-
- ///
- /// Update a task inventory item with data that has been received through a transaction.
- ///
- /// This is currently called when, for instance, a notecard in a prim is saved. The data is sent
- /// up through a single AssetUploadRequest. A subsequent UpdateTaskInventory then references the transaction
- /// and comes through this method.
- ///
- ///
- ///
- ///
- public void HandleTaskItemUpdateFromTransaction(
- IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item)
- {
-// m_log.DebugFormat(
-// "[TRANSACTIONS MANAGER] Called HandleTaskItemUpdateFromTransaction with item {0}",
-// item.Name);
-
- AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
-
- transactions.RequestUpdateTaskInventoryItem(remoteClient, part, transactionID, item);
- }
-
- ///
- /// Request that a client (agent) begin an asset transfer.
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public void HandleUDPUploadRequest(IClientAPI remoteClient, UUID assetID, UUID transaction, sbyte type,
- byte[] data, bool storeLocal, bool tempFile)
- {
- //m_log.Debug("HandleUDPUploadRequest - assetID: " + assetID.ToString() + " transaction: " + transaction.ToString() + " type: " + type.ToString() + " storelocal: " + storeLocal + " tempFile: " + tempFile);
- if (((AssetType)type == AssetType.Texture ||
- (AssetType)type == AssetType.Sound ||
- (AssetType)type == AssetType.TextureTGA ||
- (AssetType)type == AssetType.Animation) &&
- tempFile == false)
- {
- Scene scene = (Scene)remoteClient.Scene;
- IMoneyModule mm = scene.RequestModuleInterface();
-
- if (mm != null)
- {
- if (!mm.UploadCovered(remoteClient))
- {
- remoteClient.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false);
- return;
- }
- }
- }
-
- //m_log.Debug("asset upload of " + assetID);
- AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
-
- AssetXferUploader uploader = transactions.RequestXferUploader(transaction);
- if (uploader != null)
- {
- uploader.Initialise(remoteClient, assetID, transaction, type, data, storeLocal, tempFile);
- }
- }
-
- ///
- /// Handle asset transfer data packets received in response to the asset upload request in
- /// HandleUDPUploadRequest()
- ///
- ///
- ///
- ///
- ///
- public void HandleXfer(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data)
- {
- //m_log.Debug("xferID: " + xferID + " packetID: " + packetID + " data!");
- AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
-
- transactions.HandleXfer(xferID, packetID, data);
- }
- }
- */
-}
--
cgit v1.1
From 00800c59d35662d65aeb61a17de0d56fa6196509 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 12 Feb 2010 23:13:35 +0000
Subject: Apply last two patches from
http://opensimulator.org/mantis/view.php?id=3522 These patch should allow
people using systems that do not have their locale set to En_US or similar to
use OpenSim without suffering effects such as being a million miles up in the
air on login. The problem was caused by parsing strings without forcing that
parse to be En_US (hence different decimal and digit group symbols were
causing problems). Thanks very much to VikingErik for doing the legwork on
this fix and phacelia for spotting it in the first place.
---
.../ApplicationPlugins/Rest/Regions/GETHandler.cs | 5 +--
OpenSim/Client/Linden/LLProxyLoginModule.cs | 6 ++--
.../Communications/Services/LoginService.cs | 4 +--
OpenSim/Framework/Culture.cs | 2 +-
.../External/RegionSettingsSerializer.cs | 24 +++++++--------
OpenSim/Grid/UserServer.Modules/UserManager.cs | 24 +++++++--------
OpenSim/Region/Application/OpenSim.cs | 6 ++--
.../Region/ClientStack/LindenUDP/LLClientView.cs | 36 +++++++++++-----------
.../Communications/OGS1/OGS1UserDataPlugin.cs | 12 ++++----
.../Framework/InterfaceCommander/Command.cs | 2 +-
.../World/Estate/EstateManagementModule.cs | 4 +--
.../World/TreePopulator/TreePopulatorModule.cs | 6 ++--
.../Shared/Instance/ScriptSerializer.cs | 2 +-
OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | 32 +++++++++----------
.../Handlers/Grid/HypergridServerConnector.cs | 6 ++--
15 files changed, 86 insertions(+), 85 deletions(-)
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs
index 9c90a7e..ed18207 100644
--- a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs
+++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs
@@ -29,6 +29,7 @@ using System;
using System.IO;
using System.Xml.Serialization;
using OpenMetaverse;
+using OpenSim.Framework;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
@@ -156,8 +157,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions
Vector3 min, max;
try
{
- min = new Vector3((float)Double.Parse(subregion[0]), (float)Double.Parse(subregion[1]), (float)Double.Parse(subregion[2]));
- max = new Vector3((float)Double.Parse(subregion[3]), (float)Double.Parse(subregion[4]), (float)Double.Parse(subregion[5]));
+ min = new Vector3((float)Double.Parse(subregion[0], Culture.NumberFormatInfo), (float)Double.Parse(subregion[1], Culture.NumberFormatInfo), (float)Double.Parse(subregion[2], Culture.NumberFormatInfo));
+ max = new Vector3((float)Double.Parse(subregion[3], Culture.NumberFormatInfo), (float)Double.Parse(subregion[4], Culture.NumberFormatInfo), (float)Double.Parse(subregion[5], Culture.NumberFormatInfo));
}
catch (Exception)
{
diff --git a/OpenSim/Client/Linden/LLProxyLoginModule.cs b/OpenSim/Client/Linden/LLProxyLoginModule.cs
index 14ce682..7c36a9b 100644
--- a/OpenSim/Client/Linden/LLProxyLoginModule.cs
+++ b/OpenSim/Client/Linden/LLProxyLoginModule.cs
@@ -218,9 +218,9 @@ namespace OpenSim.Client.Linden
{
//m_log.Debug("[CLIENT]: Main agent detected");
agentData.startpos =
- new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
- (float)Convert.ToDecimal((string)requestData["startpos_y"]),
- (float)Convert.ToDecimal((string)requestData["startpos_z"]));
+ new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["startpos_y"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["startpos_z"], Culture.NumberFormatInfo));
agentData.child = false;
}
diff --git a/OpenSim/Framework/Communications/Services/LoginService.cs b/OpenSim/Framework/Communications/Services/LoginService.cs
index 57ca704..71b38ed 100644
--- a/OpenSim/Framework/Communications/Services/LoginService.cs
+++ b/OpenSim/Framework/Communications/Services/LoginService.cs
@@ -1015,8 +1015,8 @@ namespace OpenSim.Framework.Communications.Services
}
else
{
- theUser.CurrentAgent.Position = new Vector3(float.Parse(uriMatch.Groups["x"].Value),
- float.Parse(uriMatch.Groups["y"].Value), float.Parse(uriMatch.Groups["z"].Value));
+ theUser.CurrentAgent.Position = new Vector3(float.Parse(uriMatch.Groups["x"].Value, Culture.NumberFormatInfo),
+ float.Parse(uriMatch.Groups["y"].Value, Culture.NumberFormatInfo), float.Parse(uriMatch.Groups["z"].Value, Culture.NumberFormatInfo));
}
}
response.LookAt = "[r0,r1,r0]";
diff --git a/OpenSim/Framework/Culture.cs b/OpenSim/Framework/Culture.cs
index 2066794..3d78fac 100644
--- a/OpenSim/Framework/Culture.cs
+++ b/OpenSim/Framework/Culture.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Framework
{
public class Culture
{
- private static readonly CultureInfo m_cultureInfo = new CultureInfo("en-US", true);
+ private static readonly CultureInfo m_cultureInfo = new CultureInfo("en-US", false);
public static NumberFormatInfo NumberFormatInfo
{
diff --git a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
index b5901e1..6ba4c5a 100644
--- a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
@@ -109,7 +109,7 @@ namespace OpenSim.Framework.Serialization.External
settings.AgentLimit = int.Parse(xtr.ReadElementContentAsString());
break;
case "ObjectBonus":
- settings.ObjectBonus = double.Parse(xtr.ReadElementContentAsString());
+ settings.ObjectBonus = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
}
}
@@ -134,28 +134,28 @@ namespace OpenSim.Framework.Serialization.External
settings.TerrainTexture4 = UUID.Parse(xtr.ReadElementContentAsString());
break;
case "ElevationLowSW":
- settings.Elevation1SW = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation1SW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationLowNW":
- settings.Elevation1NW = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation1NW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationLowSE":
- settings.Elevation1SE = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation1SE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationLowNE":
- settings.Elevation1NE = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation1NE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationHighSW":
- settings.Elevation2SW = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation2SW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationHighNW":
- settings.Elevation2NW = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation2NW = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationHighSE":
- settings.Elevation2SE = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation2SE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "ElevationHighNE":
- settings.Elevation2NE = double.Parse(xtr.ReadElementContentAsString());
+ settings.Elevation2NE = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
}
}
@@ -168,13 +168,13 @@ namespace OpenSim.Framework.Serialization.External
switch (xtr.Name)
{
case "WaterHeight":
- settings.WaterHeight = double.Parse(xtr.ReadElementContentAsString());
+ settings.WaterHeight = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "TerrainRaiseLimit":
- settings.TerrainRaiseLimit = double.Parse(xtr.ReadElementContentAsString());
+ settings.TerrainRaiseLimit = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "TerrainLowerLimit":
- settings.TerrainLowerLimit = double.Parse(xtr.ReadElementContentAsString());
+ settings.TerrainLowerLimit = double.Parse(xtr.ReadElementContentAsString(), Culture.NumberFormatInfo);
break;
case "UseEstateSun":
settings.UseEstateSun = bool.Parse(xtr.ReadElementContentAsString());
diff --git a/OpenSim/Grid/UserServer.Modules/UserManager.cs b/OpenSim/Grid/UserServer.Modules/UserManager.cs
index 36c6297..a2032dc 100644
--- a/OpenSim/Grid/UserServer.Modules/UserManager.cs
+++ b/OpenSim/Grid/UserServer.Modules/UserManager.cs
@@ -503,7 +503,7 @@ namespace OpenSim.Grid.UserServer.Modules
{
try
{
- userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"]);
+ userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"], Culture.NumberFormatInfo);
}
catch (InvalidCastException)
{
@@ -514,7 +514,7 @@ namespace OpenSim.Grid.UserServer.Modules
{
try
{
- userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"]);
+ userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"], Culture.NumberFormatInfo);
}
catch (InvalidCastException)
{
@@ -525,7 +525,7 @@ namespace OpenSim.Grid.UserServer.Modules
{
try
{
- userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"]);
+ userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"], Culture.NumberFormatInfo);
}
catch (InvalidCastException)
{
@@ -536,7 +536,7 @@ namespace OpenSim.Grid.UserServer.Modules
{
try
{
- userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"]);
+ userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"], Culture.NumberFormatInfo);
}
catch (InvalidCastException)
{
@@ -547,7 +547,7 @@ namespace OpenSim.Grid.UserServer.Modules
{
try
{
- userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"]);
+ userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"], Culture.NumberFormatInfo);
}
catch (InvalidCastException)
{
@@ -558,7 +558,7 @@ namespace OpenSim.Grid.UserServer.Modules
{
try
{
- userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"]);
+ userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"], Culture.NumberFormatInfo);
}
catch (InvalidCastException)
{
@@ -634,13 +634,13 @@ namespace OpenSim.Grid.UserServer.Modules
UUID RegionID = new UUID((string)requestData["region_uuid"]);
ulong regionhandle = (ulong)Convert.ToInt64((string)requestData["region_handle"]);
Vector3 position = new Vector3(
- (float)Convert.ToDecimal((string)requestData["region_pos_x"]),
- (float)Convert.ToDecimal((string)requestData["region_pos_y"]),
- (float)Convert.ToDecimal((string)requestData["region_pos_z"]));
+ (float)Convert.ToDecimal((string)requestData["region_pos_x"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["region_pos_y"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["region_pos_z"], Culture.NumberFormatInfo));
Vector3 lookat = new Vector3(
- (float)Convert.ToDecimal((string)requestData["lookat_x"]),
- (float)Convert.ToDecimal((string)requestData["lookat_y"]),
- (float)Convert.ToDecimal((string)requestData["lookat_z"]));
+ (float)Convert.ToDecimal((string)requestData["lookat_x"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["lookat_y"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["lookat_z"], Culture.NumberFormatInfo));
handlerLogOffUser = OnLogOffUser;
if (handlerLogOffUser != null)
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index eccd276..a86a831 100755
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -1183,14 +1183,14 @@ namespace OpenSim
}
if (cmdparams.Length > 4)
{
- loadOffset.X = (float) Convert.ToDecimal(cmdparams[4]);
+ loadOffset.X = (float)Convert.ToDecimal(cmdparams[4], Culture.NumberFormatInfo);
if (cmdparams.Length > 5)
{
- loadOffset.Y = (float) Convert.ToDecimal(cmdparams[5]);
+ loadOffset.Y = (float)Convert.ToDecimal(cmdparams[5], Culture.NumberFormatInfo);
}
if (cmdparams.Length > 6)
{
- loadOffset.Z = (float) Convert.ToDecimal(cmdparams[6]);
+ loadOffset.Z = (float)Convert.ToDecimal(cmdparams[6], Culture.NumberFormatInfo);
}
MainConsole.Instance.Output(String.Format("loadOffsets = <{0},{1},{2}>",loadOffset.X,loadOffset.Y,loadOffset.Z));
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index e38232c..e39323f 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -8307,8 +8307,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter),
convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter),
- Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter))),
- (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)),
+ Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)),
+ (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo),
Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)),
convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter));
}
@@ -8356,8 +8356,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (splitField.Length == 3)
{
Int16 corner = Convert.ToInt16(splitField[0]);
- float lowValue = (float)Convert.ToDecimal(splitField[1]);
- float highValue = (float)Convert.ToDecimal(splitField[2]);
+ float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo);
+ float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo);
OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue);
}
@@ -8380,19 +8380,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
if (!tmp.Contains(".")) tmp += ".00";
- float WaterHeight = (float)Convert.ToDecimal(tmp);
+ float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter);
if (!tmp.Contains(".")) tmp += ".00";
- float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp);
+ float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter);
if (!tmp.Contains(".")) tmp += ".00";
- float TerrainLowerLimit = (float)Convert.ToDecimal(tmp);
+ float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter);
bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter);
- float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter));
+ float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo);
bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter);
bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter);
- float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter));
+ float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo);
OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
@@ -13924,8 +13924,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter),
convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter),
- Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter))),
- (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)),
+ Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)),
+ (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo),
Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)),
convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter));
}
@@ -13973,8 +13973,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (splitField.Length == 3)
{
Int16 corner = Convert.ToInt16(splitField[0]);
- float lowValue = (float)Convert.ToDecimal(splitField[1]);
- float highValue = (float)Convert.ToDecimal(splitField[2]);
+ float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo);
+ float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo);
OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue);
}
@@ -13997,19 +13997,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter);
if (!tmp.Contains(".")) tmp += ".00";
- float WaterHeight = (float)Convert.ToDecimal(tmp);
+ float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter);
if (!tmp.Contains(".")) tmp += ".00";
- float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp);
+ float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter);
if (!tmp.Contains(".")) tmp += ".00";
- float TerrainLowerLimit = (float)Convert.ToDecimal(tmp);
+ float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo);
bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter);
bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter);
- float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter));
+ float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo);
bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter);
bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter);
- float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter));
+ float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo);
OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour);
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs b/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
index 776d5d1..cb1766a 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
@@ -673,13 +673,13 @@ namespace OpenSim.Region.Communications.OGS1
else
userData.HomeRegionID = UUID.Zero;
userData.HomeLocation =
- new Vector3((float)Convert.ToDecimal((string)data["home_coordinates_x"]),
- (float)Convert.ToDecimal((string)data["home_coordinates_y"]),
- (float)Convert.ToDecimal((string)data["home_coordinates_z"]));
+ new Vector3((float)Convert.ToDecimal((string)data["home_coordinates_x"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)data["home_coordinates_y"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)data["home_coordinates_z"], Culture.NumberFormatInfo));
userData.HomeLookAt =
- new Vector3((float)Convert.ToDecimal((string)data["home_look_x"]),
- (float)Convert.ToDecimal((string)data["home_look_y"]),
- (float)Convert.ToDecimal((string)data["home_look_z"]));
+ new Vector3((float)Convert.ToDecimal((string)data["home_look_x"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)data["home_look_y"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)data["home_look_z"], Culture.NumberFormatInfo));
if (data.Contains("user_flags"))
userData.UserFlags = Convert.ToInt32((string)data["user_flags"]);
if (data.Contains("god_level"))
diff --git a/OpenSim/Region/CoreModules/Framework/InterfaceCommander/Command.cs b/OpenSim/Region/CoreModules/Framework/InterfaceCommander/Command.cs
index 9fe669a..4004135 100644
--- a/OpenSim/Region/CoreModules/Framework/InterfaceCommander/Command.cs
+++ b/OpenSim/Region/CoreModules/Framework/InterfaceCommander/Command.cs
@@ -147,7 +147,7 @@ namespace OpenSim.Region.CoreModules.Framework.InterfaceCommander
m_args[i].ArgumentValue = Int32.Parse(arg.ToString());
break;
case "Double":
- m_args[i].ArgumentValue = Double.Parse(arg.ToString());
+ m_args[i].ArgumentValue = Double.Parse(arg.ToString(), OpenSim.Framework.Culture.NumberFormatInfo);
break;
case "Boolean":
m_args[i].ArgumentValue = Boolean.Parse(arg.ToString());
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 695cced..03da269 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -974,8 +974,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
if (y == -1 || m_scene.RegionInfo.RegionLocY == y)
{
int corner = int.Parse(num);
- float lowValue = float.Parse(min);
- float highValue = float.Parse(max);
+ float lowValue = float.Parse(min, Culture.NumberFormatInfo);
+ float highValue = float.Parse(max, Culture.NumberFormatInfo);
m_log.Debug("[ESTATEMODULE] Setting terrain heights " + m_scene.RegionInfo.RegionName +
string.Format(" (C{0}, {1}-{2}", corner, lowValue, highValue));
diff --git a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
index e3fbb6e..c8e6e4b 100644
--- a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
+++ b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
@@ -104,9 +104,9 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
this.m_name = field[1].Trim();
this.m_frozen = (copsedef[0] == 'F');
this.m_tree_quantity = int.Parse(field[2]);
- this.m_treeline_high = float.Parse(field[3]);
- this.m_treeline_low = float.Parse(field[4]);
- this.m_range = double.Parse(field[5]);
+ this.m_treeline_high = float.Parse(field[3], Culture.NumberFormatInfo);
+ this.m_treeline_low = float.Parse(field[4], Culture.NumberFormatInfo);
+ this.m_range = double.Parse(field[5], Culture.NumberFormatInfo);
this.m_tree_type = (Tree) Enum.Parse(typeof(Tree),field[6]);
this.m_seed_point = Vector3.Parse(field[7]);
this.m_initial_scale = Vector3.Parse(field[8]);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptSerializer.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptSerializer.cs
index bf3d335..bcdc7bf 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptSerializer.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptSerializer.cs
@@ -389,7 +389,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
break;
case "MinEventDelay":
double minEventDelay = 0.0;
- double.TryParse(part.InnerText, out minEventDelay);
+ double.TryParse(part.InnerText, NumberStyles.Float, Culture.NumberFormatInfo, out minEventDelay);
instance.MinEventDelay = minEventDelay;
break;
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index faf9c40..e87b1f4 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -72,9 +72,9 @@ namespace OpenSim.Region.ScriptEngine.Shared
return;
}
bool res;
- res = Double.TryParse(tmps[0], out x);
- res = res & Double.TryParse(tmps[1], out y);
- res = res & Double.TryParse(tmps[2], out z);
+ res = Double.TryParse(tmps[0], NumberStyles.Float, Culture.NumberFormatInfo, out x);
+ res = res & Double.TryParse(tmps[1], NumberStyles.Float, Culture.NumberFormatInfo, out y);
+ res = res & Double.TryParse(tmps[2], NumberStyles.Float, Culture.NumberFormatInfo, out z);
}
#endregion
@@ -309,10 +309,10 @@ namespace OpenSim.Region.ScriptEngine.Shared
return;
}
bool res;
- res = Double.TryParse(tmps[0], NumberStyles.Float, Culture.FormatProvider, out x);
- res = res & Double.TryParse(tmps[1], NumberStyles.Float, Culture.FormatProvider, out y);
- res = res & Double.TryParse(tmps[2], NumberStyles.Float, Culture.FormatProvider, out z);
- res = res & Double.TryParse(tmps[3], NumberStyles.Float, Culture.FormatProvider, out s);
+ res = Double.TryParse(tmps[0], NumberStyles.Float, Culture.NumberFormatInfo, out x);
+ res = res & Double.TryParse(tmps[1], NumberStyles.Float, Culture.NumberFormatInfo, out y);
+ res = res & Double.TryParse(tmps[2], NumberStyles.Float, Culture.NumberFormatInfo, out z);
+ res = res & Double.TryParse(tmps[3], NumberStyles.Float, Culture.NumberFormatInfo, out s);
if (x == 0 && y == 0 && z == 0 && s == 0)
s = 1;
}
@@ -1015,7 +1015,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
double entry;
for (int i = 0; i < Data.Length; i++)
{
- if (double.TryParse(Data[i].ToString(), out entry))
+ if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
{
if (entry < minimum) minimum = entry;
}
@@ -1029,7 +1029,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
double entry;
for (int i = 0; i < Data.Length; i++)
{
- if (double.TryParse(Data[i].ToString(), out entry))
+ if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
{
if (entry > maximum) maximum = entry;
}
@@ -1048,7 +1048,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
double entry;
for (int i = 0; i < Data.Length; i++)
{
- if (double.TryParse(Data[i].ToString(), out entry))
+ if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
{
count++;
}
@@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
double entry;
for (int i = 0; i < src.Data.Length - 1; i++)
{
- if (double.TryParse(src.Data[i].ToString(), out entry))
+ if (double.TryParse(src.Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
{
ret.Add(entry);
}
@@ -1076,7 +1076,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
double entry;
for (int i = 0; i < Data.Length; i++)
{
- if (double.TryParse(Data[i].ToString(), out entry))
+ if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
{
sum = sum + entry;
}
@@ -1090,7 +1090,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
double entry;
for (int i = 0; i < Data.Length; i++)
{
- if (double.TryParse(Data[i].ToString(), out entry))
+ if (double.TryParse(Data[i].ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out entry))
{
sum = sum + Math.Pow(entry, 2);
}
@@ -1213,11 +1213,11 @@ namespace OpenSim.Region.ScriptEngine.Shared
{
double a;
double b;
- if (!double.TryParse(x.ToString(), out a))
+ if (!double.TryParse(x.ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out a))
{
a = 0.0;
}
- if (!double.TryParse(y.ToString(), out b))
+ if (!double.TryParse(y.ToString(), NumberStyles.Float, Culture.NumberFormatInfo, out b))
{
b = 0.0;
}
@@ -1857,7 +1857,7 @@ namespace OpenSim.Region.ScriptEngine.Shared
else
if (v.EndsWith("."))
v = v + "0";
- this.value = double.Parse(v, System.Globalization.NumberStyles.Float, Culture.FormatProvider);
+ this.value = double.Parse(v, System.Globalization.NumberStyles.Float, Culture.NumberFormatInfo);
}
#endregion
diff --git a/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs b/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs
index 115ac29..7cc0dfa 100644
--- a/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs
+++ b/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs
@@ -132,9 +132,9 @@ namespace OpenSim.Server.Handlers.Grid
userData.SurName = (string)requestData["lastname"];
userData.ID = new UUID((string)requestData["agent_id"]);
UUID sessionID = new UUID((string)requestData["session_id"]);
- userData.HomeLocation = new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
- (float)Convert.ToDecimal((string)requestData["startpos_y"]),
- (float)Convert.ToDecimal((string)requestData["startpos_z"]));
+ userData.HomeLocation = new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["startpos_y"], Culture.NumberFormatInfo),
+ (float)Convert.ToDecimal((string)requestData["startpos_z"], Culture.NumberFormatInfo));
userData.UserServerURI = (string)requestData["userserver_id"];
userData.UserAssetURI = (string)requestData["assetserver_id"];
--
cgit v1.1
From b2656e62ba2c8a57859df96ab1f877910f271cff Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 12 Feb 2010 23:16:45 +0000
Subject: minor: update CONTRIBUTORS.txt
---
CONTRIBUTORS.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index 08048f5..13c05ef 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -120,6 +120,7 @@ what it is today.
* tglion
* tlaukkan/Tommil (Tommi S. E. Laukkanen, Bubble Cloud)
* tyre
+* VikingErik
* Vytek
* webmage (IBM)
* Xantor
--
cgit v1.1
From fa6da2f6c666e786513e4c822a37d6755c9ff716 Mon Sep 17 00:00:00 2001
From: Teravus Ovares (Dan Olivares)
Date: Sat, 13 Feb 2010 05:09:15 -0500
Subject: * This is an attempt to resolve mantis 4437 by using SqliteAdapter
type statements instead of blanket SQL statements. The hope is that this
makes SQLite work on Linux/Mono again. Re:
http://opensimulator.org/mantis/view.php?id=4437 * Added a 'Create Update
Statement' method that takes two fields for a primary key * Added an Update
and Delete command for parcels and land access list table rows.
---
OpenSim/Data/SQLite/SQLiteRegionData.cs | 111 ++++++++++++++++++++++++++++----
1 file changed, 100 insertions(+), 11 deletions(-)
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index b68de1a..1285064 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -617,18 +617,42 @@ namespace OpenSim.Data.SQLite
{
lock (ds)
{
- using (SqliteCommand cmd = new SqliteCommand("delete from land where UUID=:UUID", m_conn))
+ // Can't use blanket SQL statements when using SqlAdapters unless you re-read the data into the adapter
+ // after you're done.
+ // replaced below code with the SqliteAdapter version.
+ //using (SqliteCommand cmd = new SqliteCommand("delete from land where UUID=:UUID", m_conn))
+ //{
+ // cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
+ // cmd.ExecuteNonQuery();
+ //}
+
+ //using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:UUID", m_conn))
+ //{
+ // cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
+ // cmd.ExecuteNonQuery();
+ //}
+
+ DataTable land = ds.Tables["land"];
+ DataTable landaccesslist = ds.Tables["landaccesslist"];
+ DataRow landRow = land.Rows.Find(globalID.ToString());
+ if (landRow != null)
{
- cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
- cmd.ExecuteNonQuery();
+ land.Rows.Remove(landRow);
}
-
- using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:UUID", m_conn))
+ List rowsToDelete = new List();
+ foreach (DataRow rowToCheck in landaccesslist.Rows)
{
- cmd.Parameters.Add(new SqliteParameter(":UUID", globalID.ToString()));
- cmd.ExecuteNonQuery();
+ if (rowToCheck["LandUUID"].ToString() == globalID.ToString())
+ rowsToDelete.Add(rowToCheck);
+ }
+ for (int iter = 0; iter < rowsToDelete.Count; iter++)
+ {
+ landaccesslist.Rows.Remove(rowsToDelete[iter]);
}
+
+
}
+ Commit();
}
///
@@ -655,12 +679,27 @@ namespace OpenSim.Data.SQLite
}
// I know this caused someone issues before, but OpenSim is unusable if we leave this stuff around
- using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", m_conn))
+ //using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", m_conn))
+ //{
+ // cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString()));
+ // cmd.ExecuteNonQuery();
+
+// }
+
+ // This is the slower.. but more appropriate thing to do
+
+ // We can't modify the table with direct queries before calling Commit() and re-filling them.
+ List rowsToDelete = new List();
+ foreach (DataRow rowToCheck in landaccesslist.Rows)
{
- cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString()));
- cmd.ExecuteNonQuery();
+ if (rowToCheck["LandUUID"].ToString() == parcel.LandData.GlobalID.ToString())
+ rowsToDelete.Add(rowToCheck);
}
-
+ for (int iter = 0; iter < rowsToDelete.Count; iter++)
+ {
+ landaccesslist.Rows.Remove(rowsToDelete[iter]);
+ }
+ rowsToDelete.Clear();
foreach (ParcelManager.ParcelAccessEntry entry in parcel.LandData.ParcelAccessList)
{
DataRow newAccessRow = landaccesslist.NewRow();
@@ -1813,6 +1852,7 @@ namespace OpenSim.Data.SQLite
///
private void addPrim(SceneObjectPart prim, UUID sceneGroupID, UUID regionUUID)
{
+
DataTable prims = ds.Tables["prims"];
DataTable shapes = ds.Tables["primshapes"];
@@ -1962,6 +2002,40 @@ namespace OpenSim.Data.SQLite
}
///
+ /// create an update command
+ ///
+ /// table name
+ ///
+ ///
+ /// the created command
+ private static SqliteCommand createUpdateCommand(string table, string pk1, string pk2, DataTable dt)
+ {
+ string sql = "update " + table + " set ";
+ string subsql = String.Empty;
+ foreach (DataColumn col in dt.Columns)
+ {
+ if (subsql.Length > 0)
+ {
+ // a map function would rock so much here
+ subsql += ", ";
+ }
+ subsql += col.ColumnName + "= :" + col.ColumnName;
+ }
+ sql += subsql;
+ sql += " where " + pk1 + " and " + pk2;
+ SqliteCommand cmd = new SqliteCommand(sql);
+
+ // this provides the binding for all our parameters, so
+ // much less code than it used to be
+
+ foreach (DataColumn col in dt.Columns)
+ {
+ cmd.Parameters.Add(createSqliteParameter(col.ColumnName, col.DataType));
+ }
+ return cmd;
+ }
+
+ ///
///
///
/// Data Table
@@ -2079,6 +2153,11 @@ namespace OpenSim.Data.SQLite
da.UpdateCommand = createUpdateCommand("land", "UUID=:UUID", ds.Tables["land"]);
da.UpdateCommand.Connection = conn;
+
+ SqliteCommand delete = new SqliteCommand("delete from land where UUID=:UUID");
+ delete.Parameters.Add(createSqliteParameter("UUID", typeof(String)));
+ da.DeleteCommand = delete;
+ da.DeleteCommand.Connection = conn;
}
///
@@ -2090,6 +2169,16 @@ namespace OpenSim.Data.SQLite
{
da.InsertCommand = createInsertCommand("landaccesslist", ds.Tables["landaccesslist"]);
da.InsertCommand.Connection = conn;
+
+ da.UpdateCommand = createUpdateCommand("landaccesslist", "LandUUID=:landUUID", "AccessUUID=:AccessUUID", ds.Tables["landaccesslist"]);
+ da.UpdateCommand.Connection = conn;
+
+ SqliteCommand delete = new SqliteCommand("delete from landaccesslist where LandUUID= :LandUUID and AccessUUID= :AccessUUID");
+ delete.Parameters.Add(createSqliteParameter("LandUUID", typeof(String)));
+ delete.Parameters.Add(createSqliteParameter("AccessUUID", typeof(String)));
+ da.DeleteCommand = delete;
+ da.DeleteCommand.Connection = conn;
+
}
private void setupRegionSettingsCommands(SqliteDataAdapter da, SqliteConnection conn)
--
cgit v1.1
From 45493171b01c1a623edc70fcb92c48e307c7f89f Mon Sep 17 00:00:00 2001
From: Teravus Ovares (Dan Olivares)
Date: Sat, 13 Feb 2010 05:50:57 -0500
Subject: * SQLite match code casing with regionsettings table field casing
(what's with the upper case S in Sandbox while the rest is lower case 0.o) *
It's doubtful that this will have any effect on mantis
http://opensimulator.org/mantis/view.php?id=4577 . Sqlite 3 is required,
Sqlite 2 was reported.
---
OpenSim/Data/SQLite/SQLiteRegionData.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index 1285064..5a4ee2a 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -1750,7 +1750,7 @@ namespace OpenSim.Data.SQLite
row["terrain_raise_limit"] = settings.TerrainRaiseLimit;
row["terrain_lower_limit"] = settings.TerrainLowerLimit;
row["use_estate_sun"] = settings.UseEstateSun;
- row["sandbox"] = settings.Sandbox;
+ row["Sandbox"] = settings.Sandbox; // database uses upper case S for sandbox
row["sunvectorx"] = settings.SunVector.X;
row["sunvectory"] = settings.SunVector.Y;
row["sunvectorz"] = settings.SunVector.Z;
--
cgit v1.1