diff --git a/OpenSim/Framework/General/Interfaces/ILocalStorage.cs b/OpenSim/Framework/General/Interfaces/ILocalStorage.cs
deleted file mode 100644
index 1b7b01e5b9..0000000000
--- a/OpenSim/Framework/General/Interfaces/ILocalStorage.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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 OpenSim 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 libsecondlife;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Interfaces
-{
- ///
- /// ILocalStorage. Really hacked together right now needs cleaning up
- ///
- [System.Obsolete("Redundant, use IRegionDataStore instead")]
- public interface ILocalStorage
- {
- void Initialise(string datastore);
-
- void StorePrim(PrimData prim);
- void RemovePrim(LLUUID primID);
- void LoadPrimitives(ILocalStorageReceiver receiver);
-
- [System.Obsolete("Use DataStorage instead")]
- float[] LoadScene();
- [System.Obsolete("Use DataStorage instead")]
- void SaveMap(float[] heightmap);
-
- void SaveLandObjects(LandData[] lands);
- void SaveLandObject(LandData land);
- void RemoveLandObject(LandData land);
- void RemoveAllLandObjects();
- void LoadLandObjects(ILocalStorageLandObjectReceiver recv);
-
- void ShutDown();
- }
-
- public interface ILocalStorageReceiver
- {
- void PrimFromStorage(PrimData prim);
- }
-
- public interface ILocalStorageLandObjectReceiver
- {
- void LandFromStorage(LandData data);
- void NoLandDataFromStorage();
- }
-}
-
diff --git a/OpenSim/Framework/General/Interfaces/IUserServer.cs b/OpenSim/Framework/General/Interfaces/IUserServer.cs
deleted file mode 100644
index ca5816d1c6..0000000000
--- a/OpenSim/Framework/General/Interfaces/IUserServer.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.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 OpenSim 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 libsecondlife;
-using OpenSim.Framework.Inventory;
-
-namespace OpenSim.Framework.Interfaces
-{
- public interface IUserServer
- {
- AgentInventory RequestAgentsInventory(LLUUID agentID);
- void SetServerInfo(string ServerUrl, string SendKey, string RecvKey);
- bool UpdateAgentsInventory(LLUUID agentID, AgentInventory inventory);
- }
-}
diff --git a/OpenSim/Framework/General/Types/RegionInfo.cs b/OpenSim/Framework/General/Types/RegionInfo.cs
index b9ed8d2e38..aa391c08ea 100644
--- a/OpenSim/Framework/General/Types/RegionInfo.cs
+++ b/OpenSim/Framework/General/Types/RegionInfo.cs
@@ -29,6 +29,7 @@ using System;
using System.Globalization;
using System.Net;
using System.Net.Sockets;
+using Nini.Config;
using libsecondlife;
using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces;
@@ -163,9 +164,55 @@ namespace OpenSim.Framework.Types
m_externalHostName = externalUri;
}
+ public void LoadFromNiniSource(IConfigSource source)
+ {
+ this.LoadFromNiniSource(source, "RegionInfo");
+ }
+
+ public void LoadFromNiniSource(IConfigSource source, string sectionName)
+ {
+ string errorMessage = "";
+ this.SimUUID = new LLUUID(source.Configs[sectionName].GetString("sim_UUID", LLUUID.Random().ToStringHyphenated()));
+ this.RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test");
+ this.m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000"));
+ this.m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000"));
+ this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db");
+
+ string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0");
+ IPAddress ipAddressResult;
+ if (IPAddress.TryParse(ipAddress, out ipAddressResult))
+ {
+ this.m_internalEndPoint = new IPEndPoint(ipAddressResult, 0);
+ }
+ else
+ {
+ errorMessage = "needs an IP Address (IPAddress)";
+ }
+ this.m_internalEndPoint.Port = source.Configs[sectionName].GetInt("internal_ip_port",(int) 9000);
+
+ string externalHost = source.Configs[sectionName].GetString("external_host_name", "127.0.0.1");
+ if (externalHost != "SYSTEMIP")
+ {
+ this.m_externalHostName = externalHost;
+ }
+ else
+ {
+ this.m_externalHostName = Util.GetLocalHost().ToString();
+ }
+
+ this.MasterAvatarFirstName = source.Configs[sectionName].GetString("master_avatar_first", "Test");
+ this.MasterAvatarLastName = source.Configs[sectionName].GetString("master_avatar_last", "User");
+ this.MasterAvatarSandboxPassword = source.Configs[sectionName].GetString("master_avatar_pass", "test");
+
+ if (errorMessage != "")
+ {
+ // a error
+ }
+ }
+
public void loadConfigurationOptions()
{
- configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString(),true);
+ configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString(), true);
configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Simulator Name", "OpenSim Test", false);
configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false);
configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000", false);
diff --git a/OpenSim/Framework/General/Util.cs b/OpenSim/Framework/General/Util.cs
index f3e2a01011..f3a8c73488 100644
--- a/OpenSim/Framework/General/Util.cs
+++ b/OpenSim/Framework/General/Util.cs
@@ -32,6 +32,8 @@ using System.Net;
using System.Text;
using libsecondlife;
+using Nini.Config;
+
namespace OpenSim.Framework.Utilities
{
public class Util
@@ -313,5 +315,28 @@ namespace OpenSim.Framework.Utilities
{
}
+
+ // Nini (config) related Methods
+ public static IConfigSource ConvertDataRowToXMLConfig(System.Data.DataRow row, string fileName)
+ {
+ if(!File.Exists(fileName))
+ {
+ //create new file
+ }
+ XmlConfigSource config = new XmlConfigSource(fileName);
+ AddDataRowToConfig(config, row);
+ config.Save();
+
+ return config;
+ }
+
+ public static void AddDataRowToConfig(IConfigSource config, System.Data.DataRow row)
+ {
+ config.Configs.Add((string)row[0]);
+ for (int i = 0; i < row.Table.Columns.Count; i++)
+ {
+ config.Configs[(string)row[0]].Set(row.Table.Columns[i].ColumnName, row[i]);
+ }
+ }
}
}
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 8e3f558b40..b052178c1f 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -60,8 +60,8 @@ namespace OpenSim
public bool m_sandbox;
public bool user_accounts;
public bool m_gridLocalAsset;
- protected bool m_useConfigFile;
- public string m_configFileName;
+
+ protected string m_storageDLL = "OpenSim.DataStore.NullStorage.dll";
protected List m_udpServers = new List();
protected List m_regionData = new List();
@@ -74,31 +74,30 @@ namespace OpenSim
: base()
{
IConfigSource startupSource = configSource;
- string iniFile = startupSource.Configs["Startup"].GetString("inifile", "NA");
- if (iniFile != "NA")
- {
- //a INI file is set to be used for startup settings
- string iniFilePath = Path.Combine(Util.configDir(), iniFile);
- if (File.Exists(iniFilePath))
- {
- startupSource = new IniConfigSource(iniFilePath);
+ string iniFile = startupSource.Configs["Startup"].GetString("inifile", "OpenSim.ini");
- //enable following line, if we want the original config source(normally commandline args) merged with ini file settings.
- //in this case we have it so that if both sources have the same named setting, the command line value will overwrite the ini file value.
- //(as if someone has bothered to enter a command line arg, we should take notice of it)
- //startupSource.Merge(configSource);
- }
+ //check for .INI file (either default or name passed in command line)
+ string iniFilePath = Path.Combine(Util.configDir(), iniFile);
+ if (File.Exists(iniFilePath))
+ {
+ startupSource = new IniConfigSource(iniFilePath);
+
+ //enable following line, if we want the original config source(normally commandline args) merged with ini file settings.
+ //in this case we have it so that if both sources have the same named setting, the command line value will overwrite the ini file value.
+ //(as if someone has bothered to enter a command line arg, we should take notice of it)
+ startupSource.Merge(configSource);
}
+
ReadConfigSettings(startupSource);
}
protected void ReadConfigSettings(IConfigSource configSource)
{
- m_useConfigFile = configSource.Configs["Startup"].GetBoolean("configfile", false);
m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false);
m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics");
- m_configFileName = configSource.Configs["Startup"].GetString("config", "simconfig.xml");
m_silent = configSource.Configs["Startup"].GetBoolean("noverbose", false);
+
+ m_storageDLL = configSource.Configs["Startup"].GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll");
}
///
@@ -110,7 +109,7 @@ namespace OpenSim
{
Directory.CreateDirectory(Util.logDir());
}
-
+
m_log = new LogBase(Path.Combine(Util.logDir(), m_logFilename), "Region", this, m_silent);
MainLog.Instance = m_log;
@@ -131,12 +130,12 @@ namespace OpenSim
}
string regionConfigPath = Path.Combine(Util.configDir(), "Regions");
-
+
if (!Directory.Exists(regionConfigPath))
{
Directory.CreateDirectory(regionConfigPath);
}
-
+
string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml");
if (configFiles.Length == 0)
@@ -175,7 +174,7 @@ namespace OpenSim
protected override StorageManager CreateStorageManager(RegionInfo regionInfo)
{
- return new StorageManager("OpenSim.DataStore.NullStorage.dll", regionInfo.DataStore, regionInfo.RegionName);
+ return new StorageManager(m_storageDLL, regionInfo.DataStore, regionInfo.RegionName);
}
protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager)
@@ -287,7 +286,7 @@ namespace OpenSim
case "terrain":
string result = "";
- foreach(Scene scene in m_localScenes)
+ foreach (Scene scene in m_localScenes)
{
if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName))
{
@@ -296,21 +295,21 @@ namespace OpenSim
}
break;
case "script":
- foreach(Scene scene in m_localScenes )
+ foreach (Scene scene in m_localScenes)
{
scene.SendCommandToScripts(cmdparams);
}
break;
case "backup":
- foreach(Scene scene in m_localScenes )
+ foreach (Scene scene in m_localScenes)
{
scene.Backup();
}
break;
case "alert":
- foreach(Scene scene in m_localScenes)
+ foreach (Scene scene in m_localScenes)
{
scene.HandleAlertCommand(cmdparams);
}
@@ -344,19 +343,19 @@ namespace OpenSim
for (int i = 0; i < m_localScenes.Count; i++)
{
Scene scene = m_localScenes[i];
- foreach (Entity entity in scene.Entities.Values )
+ foreach (Entity entity in scene.Entities.Values)
{
- if ( entity is ScenePresence )
+ if (entity is ScenePresence)
{
ScenePresence scenePrescence = entity as ScenePresence;
m_log.Error(
- String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}",
+ String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}",
scenePrescence.Firstname,
scenePrescence.Lastname,
- scenePrescence.UUID,
+ scenePrescence.UUID,
scenePrescence.ControllingClient.AgentId,
- "Unknown",
- "Unknown",
+ "Unknown",
+ "Unknown",
scene.RegionInfo.RegionName));
}
}
diff --git a/OpenSim/Region/ClientStack/Assets/InventoryCache.cs b/OpenSim/Region/ClientStack/Assets/InventoryCache.cs
index c0609b6c57..8185502608 100644
--- a/OpenSim/Region/ClientStack/Assets/InventoryCache.cs
+++ b/OpenSim/Region/ClientStack/Assets/InventoryCache.cs
@@ -64,17 +64,6 @@ namespace OpenSim.Assets
}
}
- public AgentInventory FetchAgentsInventory(LLUUID agentID, IUserServer userserver)
- {
- AgentInventory res = null;
- if (!this._agentsInventory.ContainsKey(agentID))
- {
- res = userserver.RequestAgentsInventory(agentID);
- this._agentsInventory.Add(agentID,res);
- }
- return res;
- }
-
public AgentInventory GetAgentsInventory(LLUUID agentID)
{
if (this._agentsInventory.ContainsKey(agentID))
@@ -85,18 +74,6 @@ namespace OpenSim.Assets
return null;
}
- public void ClientLeaving(LLUUID clientID, IUserServer userserver)
- {
- if (this._agentsInventory.ContainsKey(clientID))
- {
- if (userserver != null)
- {
- userserver.UpdateAgentsInventory(clientID, this._agentsInventory[clientID]);
- }
- this._agentsInventory.Remove(clientID);
- }
- }
-
public bool CreateNewInventoryFolder(ClientView remoteClient, LLUUID folderID)
{
return this.CreateNewInventoryFolder(remoteClient, folderID, 0);
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index e693c64e90..1375f6cfde 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -120,7 +120,7 @@ namespace OpenSim.Region.ClientStack
public void KillClient()
{
clientPingTimer.Stop();
- this.m_inventoryCache.ClientLeaving(this.AgentID, null);
+
m_scene.RemoveClient(this.AgentId);
m_clientThreads.Remove(this.CircuitCode);
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index 05c970a902..d47450ab7b 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ClientStack
Initialize();
- ScenePresence.CreateDefaultTextureEntry("avatar-texture.dat");
+ ScenePresence.CreateDefaultTextureEntry();
m_httpServer = new BaseHttpServer( m_httpServerPort );
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs
index f67b51a48d..5bc975c567 100644
--- a/OpenSim/Region/Environment/LandManagement/LandManager.cs
+++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Environment.LandManagement
///
/// Handles Land objects and operations requiring information from other Land objects (divide, join, etc)
///
- public class LandManager : ILocalStorageLandObjectReceiver
+ public class LandManager
{
#region Constants
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index cae57a2dce..d3c7f776d0 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Region.Environment.Scenes
public delegate void ForEachScenePresenceDelegate(ScenePresence presence);
- public partial class Scene : SceneBase, ILocalStorageReceiver
+ public partial class Scene : SceneBase
{
protected Timer m_heartbeatTimer = new Timer();
protected Dictionary Avatars;
@@ -229,7 +229,7 @@ namespace OpenSim.Region.Environment.Scenes
//backup scene data
storageCount++;
- if (storageCount > 1200) //set to how often you want to backup
+ if (storageCount > 600) //set to how often you want to backup
{
Backup();
storageCount = 0;
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 114623a4f1..1be1e7a556 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -665,19 +665,8 @@ namespace OpenSim.Region.Environment.Scenes
}
}
- public static void CreateDefaultTextureEntry(string name)
+ public static void CreateDefaultTextureEntry()
{
- /* FileInfo fInfo = new FileInfo(name);
- long numBytes = fInfo.Length;
- FileStream fStream = new FileStream(name, FileMode.Open, FileAccess.Read);
- BinaryReader br = new BinaryReader(fStream);
- byte[] data1 = br.ReadBytes((int)numBytes);
- br.Close();
- fStream.Close();
- DefaultTexture = data1;
- LLObject.TextureEntry textu = new LLObject.TextureEntry(data1, 0, data1.Length);
- Console.WriteLine("default texture entry: " + textu.ToString());*/
-
LLObject.TextureEntry textu = new LLObject.TextureEntry(new LLUUID("C228D1CF-4B5D-4BA8-84F4-899A0796AA97"));
textu.CreateFace(0).TextureID = new LLUUID("00000000-0000-1111-9999-000000000012");
textu.CreateFace(1).TextureID = new LLUUID("5748decc-f629-461c-9a36-a35a221fe21f");
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
index f85d3b653f..45b19e69e9 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
-using System.IO;
using OpenSim.Region.Environment.Scenes;
using OpenSim.Region.Environment.LandManagement;
@@ -31,9 +30,10 @@ namespace OpenSim.DataStore.MonoSqliteStorage
public void Initialise(string dbfile, string dbname)
{
- // for us, dbfile will be the connect string
+ string connectionString = "URI=file:" + dbfile + ",version=3";
+
MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + dbfile);
- SqliteConnection conn = new SqliteConnection(dbfile);
+ SqliteConnection conn = new SqliteConnection(connectionString);
SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn);
primDa = new SqliteDataAdapter(primSelectCmd);
@@ -301,6 +301,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
Convert.ToSingle(row["RotationZ"]),
Convert.ToSingle(row["RotationW"])
);
+
return prim;
}
diff --git a/bin/Mono.Data.SqliteClient.dll b/bin/Mono.Data.SqliteClient.dll
new file mode 100644
index 0000000000..657fbf47b7
Binary files /dev/null and b/bin/Mono.Data.SqliteClient.dll differ
diff --git a/bin/OpenSim.ini b/bin/OpenSim.ini
new file mode 100644
index 0000000000..022d82f3e2
--- /dev/null
+++ b/bin/OpenSim.ini
@@ -0,0 +1,4 @@
+[Startup]
+gridmode = false
+physics = basicphysics
+storage_plugin = "OpenSim.DataStore.NullStorage.dll"
\ No newline at end of file
diff --git a/bin/sqlite-3.4.1.so b/bin/sqlite-3.4.1.so
new file mode 100644
index 0000000000..3b0f23b297
Binary files /dev/null and b/bin/sqlite-3.4.1.so differ
diff --git a/bin/sqlite3.def b/bin/sqlite3.def
new file mode 100644
index 0000000000..9eb6a4e866
--- /dev/null
+++ b/bin/sqlite3.def
@@ -0,0 +1,131 @@
+EXPORTS
+sqlite3_aggregate_context
+sqlite3_aggregate_count
+sqlite3_apis
+sqlite3_auto_extension
+sqlite3_bind_blob
+sqlite3_bind_double
+sqlite3_bind_int
+sqlite3_bind_int64
+sqlite3_bind_null
+sqlite3_bind_parameter_count
+sqlite3_bind_parameter_index
+sqlite3_bind_parameter_name
+sqlite3_bind_text
+sqlite3_bind_text16
+sqlite3_bind_value
+sqlite3_bind_zeroblob
+sqlite3_blob_bytes
+sqlite3_blob_close
+sqlite3_blob_open
+sqlite3_blob_read
+sqlite3_blob_write
+sqlite3_busy_handler
+sqlite3_busy_timeout
+sqlite3_changes
+sqlite3_clear_bindings
+sqlite3_close
+sqlite3_collation_needed
+sqlite3_collation_needed16
+sqlite3_column_blob
+sqlite3_column_bytes
+sqlite3_column_bytes16
+sqlite3_column_count
+sqlite3_column_decltype
+sqlite3_column_decltype16
+sqlite3_column_double
+sqlite3_column_int
+sqlite3_column_int64
+sqlite3_column_name
+sqlite3_column_name16
+sqlite3_column_text
+sqlite3_column_text16
+sqlite3_column_type
+sqlite3_column_value
+sqlite3_commit_hook
+sqlite3_complete
+sqlite3_complete16
+sqlite3_create_collation
+sqlite3_create_collation16
+sqlite3_create_collation_v2
+sqlite3_create_function
+sqlite3_create_function16
+sqlite3_create_module
+sqlite3_create_module_v2
+sqlite3_data_count
+sqlite3_db_handle
+sqlite3_declare_vtab
+sqlite3_enable_load_extension
+sqlite3_enable_shared_cache
+sqlite3_errcode
+sqlite3_errmsg
+sqlite3_errmsg16
+sqlite3_exec
+sqlite3_expired
+sqlite3_extended_result_codes
+sqlite3_finalize
+sqlite3_free
+sqlite3_free_table
+sqlite3_get_autocommit
+sqlite3_get_auxdata
+sqlite3_get_table
+sqlite3_global_recover
+sqlite3_interrupt
+sqlite3_last_insert_rowid
+sqlite3_libversion
+sqlite3_libversion_number
+sqlite3_load_extension
+sqlite3_malloc
+sqlite3_mprintf
+sqlite3_open
+sqlite3_open16
+sqlite3_overload_function
+sqlite3_prepare
+sqlite3_prepare16
+sqlite3_prepare16_v2
+sqlite3_prepare_v2
+sqlite3_profile
+sqlite3_progress_handler
+sqlite3_realloc
+sqlite3_reset
+sqlite3_reset_auto_extension
+sqlite3_result_blob
+sqlite3_result_double
+sqlite3_result_error
+sqlite3_result_error16
+sqlite3_result_error_toobig
+sqlite3_result_int
+sqlite3_result_int64
+sqlite3_result_null
+sqlite3_result_text
+sqlite3_result_text16
+sqlite3_result_text16be
+sqlite3_result_text16le
+sqlite3_result_value
+sqlite3_result_zeroblob
+sqlite3_rollback_hook
+sqlite3_set_authorizer
+sqlite3_set_auxdata
+sqlite3_sleep
+sqlite3_snprintf
+sqlite3_step
+sqlite3_thread_cleanup
+sqlite3_total_changes
+sqlite3_trace
+sqlite3_transfer_bindings
+sqlite3_update_hook
+sqlite3_user_data
+sqlite3_value_blob
+sqlite3_value_bytes
+sqlite3_value_bytes16
+sqlite3_value_double
+sqlite3_value_int
+sqlite3_value_int64
+sqlite3_value_numeric_type
+sqlite3_value_text
+sqlite3_value_text16
+sqlite3_value_text16be
+sqlite3_value_text16le
+sqlite3_value_type
+sqlite3_version
+sqlite3_vmprintf
diff --git a/bin/sqlite3.dll b/bin/sqlite3.dll
new file mode 100644
index 0000000000..29258fb803
Binary files /dev/null and b/bin/sqlite3.dll differ
diff --git a/prebuild.xml b/prebuild.xml
index 9d61011441..572a5deefa 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -93,11 +93,13 @@
../../../bin/
+
+
@@ -636,7 +638,7 @@
-
+
../../../../bin/