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/