aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/General/Interfaces/ILocalStorage.cs71
-rw-r--r--OpenSim/Framework/General/Interfaces/IUserServer.cs39
-rw-r--r--OpenSim/Framework/General/Types/RegionInfo.cs49
-rw-r--r--OpenSim/Framework/General/Util.cs25
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs61
-rw-r--r--OpenSim/Region/ClientStack/Assets/InventoryCache.cs23
-rw-r--r--OpenSim/Region/ClientStack/ClientView.cs2
-rw-r--r--OpenSim/Region/ClientStack/RegionApplicationBase.cs2
-rw-r--r--OpenSim/Region/Environment/LandManagement/LandManager.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs4
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs15
-rw-r--r--OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs7
-rw-r--r--bin/Mono.Data.SqliteClient.dllbin0 -> 52224 bytes
-rw-r--r--bin/OpenSim.ini4
-rw-r--r--bin/sqlite-3.4.1.sobin0 -> 277804 bytes
-rw-r--r--bin/sqlite3.def131
-rw-r--r--bin/sqlite3.dllbin0 -> 363686 bytes
-rw-r--r--prebuild.xml4
18 files changed, 252 insertions, 187 deletions
diff --git a/OpenSim/Framework/General/Interfaces/ILocalStorage.cs b/OpenSim/Framework/General/Interfaces/ILocalStorage.cs
deleted file mode 100644
index 1b7b01e..0000000
--- a/OpenSim/Framework/General/Interfaces/ILocalStorage.cs
+++ /dev/null
@@ -1,71 +0,0 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28
29using libsecondlife;
30using OpenSim.Framework.Types;
31
32namespace OpenSim.Framework.Interfaces
33{
34 /// <summary>
35 /// ILocalStorage. Really hacked together right now needs cleaning up
36 /// </summary>
37 [System.Obsolete("Redundant, use IRegionDataStore instead")]
38 public interface ILocalStorage
39 {
40 void Initialise(string datastore);
41
42 void StorePrim(PrimData prim);
43 void RemovePrim(LLUUID primID);
44 void LoadPrimitives(ILocalStorageReceiver receiver);
45
46 [System.Obsolete("Use DataStorage instead")]
47 float[] LoadScene();
48 [System.Obsolete("Use DataStorage instead")]
49 void SaveMap(float[] heightmap);
50
51 void SaveLandObjects(LandData[] lands);
52 void SaveLandObject(LandData land);
53 void RemoveLandObject(LandData land);
54 void RemoveAllLandObjects();
55 void LoadLandObjects(ILocalStorageLandObjectReceiver recv);
56
57 void ShutDown();
58 }
59
60 public interface ILocalStorageReceiver
61 {
62 void PrimFromStorage(PrimData prim);
63 }
64
65 public interface ILocalStorageLandObjectReceiver
66 {
67 void LandFromStorage(LandData data);
68 void NoLandDataFromStorage();
69 }
70}
71
diff --git a/OpenSim/Framework/General/Interfaces/IUserServer.cs b/OpenSim/Framework/General/Interfaces/IUserServer.cs
deleted file mode 100644
index ca5816d..0000000
--- a/OpenSim/Framework/General/Interfaces/IUserServer.cs
+++ /dev/null
@@ -1,39 +0,0 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using libsecondlife;
29using OpenSim.Framework.Inventory;
30
31namespace OpenSim.Framework.Interfaces
32{
33 public interface IUserServer
34 {
35 AgentInventory RequestAgentsInventory(LLUUID agentID);
36 void SetServerInfo(string ServerUrl, string SendKey, string RecvKey);
37 bool UpdateAgentsInventory(LLUUID agentID, AgentInventory inventory);
38 }
39}
diff --git a/OpenSim/Framework/General/Types/RegionInfo.cs b/OpenSim/Framework/General/Types/RegionInfo.cs
index b9ed8d2..aa391c0 100644
--- a/OpenSim/Framework/General/Types/RegionInfo.cs
+++ b/OpenSim/Framework/General/Types/RegionInfo.cs
@@ -29,6 +29,7 @@ using System;
29using System.Globalization; 29using System.Globalization;
30using System.Net; 30using System.Net;
31using System.Net.Sockets; 31using System.Net.Sockets;
32using Nini.Config;
32using libsecondlife; 33using libsecondlife;
33using OpenSim.Framework.Console; 34using OpenSim.Framework.Console;
34using OpenSim.Framework.Interfaces; 35using OpenSim.Framework.Interfaces;
@@ -163,9 +164,55 @@ namespace OpenSim.Framework.Types
163 m_externalHostName = externalUri; 164 m_externalHostName = externalUri;
164 } 165 }
165 166
167 public void LoadFromNiniSource(IConfigSource source)
168 {
169 this.LoadFromNiniSource(source, "RegionInfo");
170 }
171
172 public void LoadFromNiniSource(IConfigSource source, string sectionName)
173 {
174 string errorMessage = "";
175 this.SimUUID = new LLUUID(source.Configs[sectionName].GetString("sim_UUID", LLUUID.Random().ToStringHyphenated()));
176 this.RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test");
177 this.m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000"));
178 this.m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000"));
179 this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db");
180
181 string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0");
182 IPAddress ipAddressResult;
183 if (IPAddress.TryParse(ipAddress, out ipAddressResult))
184 {
185 this.m_internalEndPoint = new IPEndPoint(ipAddressResult, 0);
186 }
187 else
188 {
189 errorMessage = "needs an IP Address (IPAddress)";
190 }
191 this.m_internalEndPoint.Port = source.Configs[sectionName].GetInt("internal_ip_port",(int) 9000);
192
193 string externalHost = source.Configs[sectionName].GetString("external_host_name", "127.0.0.1");
194 if (externalHost != "SYSTEMIP")
195 {
196 this.m_externalHostName = externalHost;
197 }
198 else
199 {
200 this.m_externalHostName = Util.GetLocalHost().ToString();
201 }
202
203 this.MasterAvatarFirstName = source.Configs[sectionName].GetString("master_avatar_first", "Test");
204 this.MasterAvatarLastName = source.Configs[sectionName].GetString("master_avatar_last", "User");
205 this.MasterAvatarSandboxPassword = source.Configs[sectionName].GetString("master_avatar_pass", "test");
206
207 if (errorMessage != "")
208 {
209 // a error
210 }
211 }
212
166 public void loadConfigurationOptions() 213 public void loadConfigurationOptions()
167 { 214 {
168 configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString(),true); 215 configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString(), true);
169 configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Simulator Name", "OpenSim Test", false); 216 configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Simulator Name", "OpenSim Test", false);
170 configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false); 217 configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false);
171 configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000", false); 218 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 f3e2a01..f3a8c73 100644
--- a/OpenSim/Framework/General/Util.cs
+++ b/OpenSim/Framework/General/Util.cs
@@ -32,6 +32,8 @@ using System.Net;
32using System.Text; 32using System.Text;
33using libsecondlife; 33using libsecondlife;
34 34
35using Nini.Config;
36
35namespace OpenSim.Framework.Utilities 37namespace OpenSim.Framework.Utilities
36{ 38{
37 public class Util 39 public class Util
@@ -313,5 +315,28 @@ namespace OpenSim.Framework.Utilities
313 { 315 {
314 316
315 } 317 }
318
319 // Nini (config) related Methods
320 public static IConfigSource ConvertDataRowToXMLConfig(System.Data.DataRow row, string fileName)
321 {
322 if(!File.Exists(fileName))
323 {
324 //create new file
325 }
326 XmlConfigSource config = new XmlConfigSource(fileName);
327 AddDataRowToConfig(config, row);
328 config.Save();
329
330 return config;
331 }
332
333 public static void AddDataRowToConfig(IConfigSource config, System.Data.DataRow row)
334 {
335 config.Configs.Add((string)row[0]);
336 for (int i = 0; i < row.Table.Columns.Count; i++)
337 {
338 config.Configs[(string)row[0]].Set(row.Table.Columns[i].ColumnName, row[i]);
339 }
340 }
316 } 341 }
317} 342}
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 8e3f558..b052178 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -60,8 +60,8 @@ namespace OpenSim
60 public bool m_sandbox; 60 public bool m_sandbox;
61 public bool user_accounts; 61 public bool user_accounts;
62 public bool m_gridLocalAsset; 62 public bool m_gridLocalAsset;
63 protected bool m_useConfigFile; 63
64 public string m_configFileName; 64 protected string m_storageDLL = "OpenSim.DataStore.NullStorage.dll";
65 65
66 protected List<UDPServer> m_udpServers = new List<UDPServer>(); 66 protected List<UDPServer> m_udpServers = new List<UDPServer>();
67 protected List<RegionInfo> m_regionData = new List<RegionInfo>(); 67 protected List<RegionInfo> m_regionData = new List<RegionInfo>();
@@ -74,31 +74,30 @@ namespace OpenSim
74 : base() 74 : base()
75 { 75 {
76 IConfigSource startupSource = configSource; 76 IConfigSource startupSource = configSource;
77 string iniFile = startupSource.Configs["Startup"].GetString("inifile", "NA"); 77 string iniFile = startupSource.Configs["Startup"].GetString("inifile", "OpenSim.ini");
78 if (iniFile != "NA") 78
79 //check for .INI file (either default or name passed in command line)
80 string iniFilePath = Path.Combine(Util.configDir(), iniFile);
81 if (File.Exists(iniFilePath))
79 { 82 {
80 //a INI file is set to be used for startup settings 83 startupSource = new IniConfigSource(iniFilePath);
81 string iniFilePath = Path.Combine(Util.configDir(), iniFile); 84
82 if (File.Exists(iniFilePath)) 85 //enable following line, if we want the original config source(normally commandline args) merged with ini file settings.
83 { 86 //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.
84 startupSource = new IniConfigSource(iniFilePath); 87 //(as if someone has bothered to enter a command line arg, we should take notice of it)
85 88 startupSource.Merge(configSource);
86 //enable following line, if we want the original config source(normally commandline args) merged with ini file settings.
87 //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.
88 //(as if someone has bothered to enter a command line arg, we should take notice of it)
89 //startupSource.Merge(configSource);
90 }
91 } 89 }
90
92 ReadConfigSettings(startupSource); 91 ReadConfigSettings(startupSource);
93 } 92 }
94 93
95 protected void ReadConfigSettings(IConfigSource configSource) 94 protected void ReadConfigSettings(IConfigSource configSource)
96 { 95 {
97 m_useConfigFile = configSource.Configs["Startup"].GetBoolean("configfile", false);
98 m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false); 96 m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false);
99 m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics"); 97 m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics");
100 m_configFileName = configSource.Configs["Startup"].GetString("config", "simconfig.xml");
101 m_silent = configSource.Configs["Startup"].GetBoolean("noverbose", false); 98 m_silent = configSource.Configs["Startup"].GetBoolean("noverbose", false);
99
100 m_storageDLL = configSource.Configs["Startup"].GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll");
102 } 101 }
103 102
104 /// <summary> 103 /// <summary>
@@ -110,7 +109,7 @@ namespace OpenSim
110 { 109 {
111 Directory.CreateDirectory(Util.logDir()); 110 Directory.CreateDirectory(Util.logDir());
112 } 111 }
113 112
114 m_log = new LogBase(Path.Combine(Util.logDir(), m_logFilename), "Region", this, m_silent); 113 m_log = new LogBase(Path.Combine(Util.logDir(), m_logFilename), "Region", this, m_silent);
115 MainLog.Instance = m_log; 114 MainLog.Instance = m_log;
116 115
@@ -131,12 +130,12 @@ namespace OpenSim
131 } 130 }
132 131
133 string regionConfigPath = Path.Combine(Util.configDir(), "Regions"); 132 string regionConfigPath = Path.Combine(Util.configDir(), "Regions");
134 133
135 if (!Directory.Exists(regionConfigPath)) 134 if (!Directory.Exists(regionConfigPath))
136 { 135 {
137 Directory.CreateDirectory(regionConfigPath); 136 Directory.CreateDirectory(regionConfigPath);
138 } 137 }
139 138
140 string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); 139 string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml");
141 140
142 if (configFiles.Length == 0) 141 if (configFiles.Length == 0)
@@ -175,7 +174,7 @@ namespace OpenSim
175 174
176 protected override StorageManager CreateStorageManager(RegionInfo regionInfo) 175 protected override StorageManager CreateStorageManager(RegionInfo regionInfo)
177 { 176 {
178 return new StorageManager("OpenSim.DataStore.NullStorage.dll", regionInfo.DataStore, regionInfo.RegionName); 177 return new StorageManager(m_storageDLL, regionInfo.DataStore, regionInfo.RegionName);
179 } 178 }
180 179
181 protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager) 180 protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager)
@@ -287,7 +286,7 @@ namespace OpenSim
287 286
288 case "terrain": 287 case "terrain":
289 string result = ""; 288 string result = "";
290 foreach(Scene scene in m_localScenes) 289 foreach (Scene scene in m_localScenes)
291 { 290 {
292 if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName)) 291 if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName))
293 { 292 {
@@ -296,21 +295,21 @@ namespace OpenSim
296 } 295 }
297 break; 296 break;
298 case "script": 297 case "script":
299 foreach(Scene scene in m_localScenes ) 298 foreach (Scene scene in m_localScenes)
300 { 299 {
301 scene.SendCommandToScripts(cmdparams); 300 scene.SendCommandToScripts(cmdparams);
302 } 301 }
303 break; 302 break;
304 303
305 case "backup": 304 case "backup":
306 foreach(Scene scene in m_localScenes ) 305 foreach (Scene scene in m_localScenes)
307 { 306 {
308 scene.Backup(); 307 scene.Backup();
309 } 308 }
310 break; 309 break;
311 310
312 case "alert": 311 case "alert":
313 foreach(Scene scene in m_localScenes) 312 foreach (Scene scene in m_localScenes)
314 { 313 {
315 scene.HandleAlertCommand(cmdparams); 314 scene.HandleAlertCommand(cmdparams);
316 } 315 }
@@ -344,19 +343,19 @@ namespace OpenSim
344 for (int i = 0; i < m_localScenes.Count; i++) 343 for (int i = 0; i < m_localScenes.Count; i++)
345 { 344 {
346 Scene scene = m_localScenes[i]; 345 Scene scene = m_localScenes[i];
347 foreach (Entity entity in scene.Entities.Values ) 346 foreach (Entity entity in scene.Entities.Values)
348 { 347 {
349 if ( entity is ScenePresence ) 348 if (entity is ScenePresence)
350 { 349 {
351 ScenePresence scenePrescence = entity as ScenePresence; 350 ScenePresence scenePrescence = entity as ScenePresence;
352 m_log.Error( 351 m_log.Error(
353 String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}", 352 String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}",
354 scenePrescence.Firstname, 353 scenePrescence.Firstname,
355 scenePrescence.Lastname, 354 scenePrescence.Lastname,
356 scenePrescence.UUID, 355 scenePrescence.UUID,
357 scenePrescence.ControllingClient.AgentId, 356 scenePrescence.ControllingClient.AgentId,
358 "Unknown", 357 "Unknown",
359 "Unknown", 358 "Unknown",
360 scene.RegionInfo.RegionName)); 359 scene.RegionInfo.RegionName));
361 } 360 }
362 } 361 }
diff --git a/OpenSim/Region/ClientStack/Assets/InventoryCache.cs b/OpenSim/Region/ClientStack/Assets/InventoryCache.cs
index c0609b6..8185502 100644
--- a/OpenSim/Region/ClientStack/Assets/InventoryCache.cs
+++ b/OpenSim/Region/ClientStack/Assets/InventoryCache.cs
@@ -64,17 +64,6 @@ namespace OpenSim.Assets
64 } 64 }
65 } 65 }
66 66
67 public AgentInventory FetchAgentsInventory(LLUUID agentID, IUserServer userserver)
68 {
69 AgentInventory res = null;
70 if (!this._agentsInventory.ContainsKey(agentID))
71 {
72 res = userserver.RequestAgentsInventory(agentID);
73 this._agentsInventory.Add(agentID,res);
74 }
75 return res;
76 }
77
78 public AgentInventory GetAgentsInventory(LLUUID agentID) 67 public AgentInventory GetAgentsInventory(LLUUID agentID)
79 { 68 {
80 if (this._agentsInventory.ContainsKey(agentID)) 69 if (this._agentsInventory.ContainsKey(agentID))
@@ -85,18 +74,6 @@ namespace OpenSim.Assets
85 return null; 74 return null;
86 } 75 }
87 76
88 public void ClientLeaving(LLUUID clientID, IUserServer userserver)
89 {
90 if (this._agentsInventory.ContainsKey(clientID))
91 {
92 if (userserver != null)
93 {
94 userserver.UpdateAgentsInventory(clientID, this._agentsInventory[clientID]);
95 }
96 this._agentsInventory.Remove(clientID);
97 }
98 }
99
100 public bool CreateNewInventoryFolder(ClientView remoteClient, LLUUID folderID) 77 public bool CreateNewInventoryFolder(ClientView remoteClient, LLUUID folderID)
101 { 78 {
102 return this.CreateNewInventoryFolder(remoteClient, folderID, 0); 79 return this.CreateNewInventoryFolder(remoteClient, folderID, 0);
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index e693c64..1375f6c 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -120,7 +120,7 @@ namespace OpenSim.Region.ClientStack
120 public void KillClient() 120 public void KillClient()
121 { 121 {
122 clientPingTimer.Stop(); 122 clientPingTimer.Stop();
123 this.m_inventoryCache.ClientLeaving(this.AgentID, null); 123
124 m_scene.RemoveClient(this.AgentId); 124 m_scene.RemoveClient(this.AgentId);
125 125
126 m_clientThreads.Remove(this.CircuitCode); 126 m_clientThreads.Remove(this.CircuitCode);
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index 05c970a..d47450a 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ClientStack
70 70
71 Initialize(); 71 Initialize();
72 72
73 ScenePresence.CreateDefaultTextureEntry("avatar-texture.dat"); 73 ScenePresence.CreateDefaultTextureEntry();
74 74
75 m_httpServer = new BaseHttpServer( m_httpServerPort ); 75 m_httpServer = new BaseHttpServer( m_httpServerPort );
76 76
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs
index f67b51a..5bc975c 100644
--- a/OpenSim/Region/Environment/LandManagement/LandManager.cs
+++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Environment.LandManagement
41 /// <summary> 41 /// <summary>
42 /// Handles Land objects and operations requiring information from other Land objects (divide, join, etc) 42 /// Handles Land objects and operations requiring information from other Land objects (divide, join, etc)
43 /// </summary> 43 /// </summary>
44 public class LandManager : ILocalStorageLandObjectReceiver 44 public class LandManager
45 { 45 {
46 46
47 #region Constants 47 #region Constants
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index cae57a2..d3c7f77 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Region.Environment.Scenes
50 50
51 public delegate void ForEachScenePresenceDelegate(ScenePresence presence); 51 public delegate void ForEachScenePresenceDelegate(ScenePresence presence);
52 52
53 public partial class Scene : SceneBase, ILocalStorageReceiver 53 public partial class Scene : SceneBase
54 { 54 {
55 protected Timer m_heartbeatTimer = new Timer(); 55 protected Timer m_heartbeatTimer = new Timer();
56 protected Dictionary<LLUUID, ScenePresence> Avatars; 56 protected Dictionary<LLUUID, ScenePresence> Avatars;
@@ -229,7 +229,7 @@ namespace OpenSim.Region.Environment.Scenes
229 229
230 //backup scene data 230 //backup scene data
231 storageCount++; 231 storageCount++;
232 if (storageCount > 1200) //set to how often you want to backup 232 if (storageCount > 600) //set to how often you want to backup
233 { 233 {
234 Backup(); 234 Backup();
235 storageCount = 0; 235 storageCount = 0;
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 114623a..1be1e7a 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -665,19 +665,8 @@ namespace OpenSim.Region.Environment.Scenes
665 } 665 }
666 } 666 }
667 667
668 public static void CreateDefaultTextureEntry(string name) 668 public static void CreateDefaultTextureEntry()
669 { 669 {
670 /* FileInfo fInfo = new FileInfo(name);
671 long numBytes = fInfo.Length;
672 FileStream fStream = new FileStream(name, FileMode.Open, FileAccess.Read);
673 BinaryReader br = new BinaryReader(fStream);
674 byte[] data1 = br.ReadBytes((int)numBytes);
675 br.Close();
676 fStream.Close();
677 DefaultTexture = data1;
678 LLObject.TextureEntry textu = new LLObject.TextureEntry(data1, 0, data1.Length);
679 Console.WriteLine("default texture entry: " + textu.ToString());*/
680
681 LLObject.TextureEntry textu = new LLObject.TextureEntry(new LLUUID("C228D1CF-4B5D-4BA8-84F4-899A0796AA97")); 670 LLObject.TextureEntry textu = new LLObject.TextureEntry(new LLUUID("C228D1CF-4B5D-4BA8-84F4-899A0796AA97"));
682 textu.CreateFace(0).TextureID = new LLUUID("00000000-0000-1111-9999-000000000012"); 671 textu.CreateFace(0).TextureID = new LLUUID("00000000-0000-1111-9999-000000000012");
683 textu.CreateFace(1).TextureID = new LLUUID("5748decc-f629-461c-9a36-a35a221fe21f"); 672 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 f85d3b6..45b19e6 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
@@ -1,7 +1,6 @@
1using System; 1using System;
2using System.Collections.Generic; 2using System.Collections.Generic;
3using System.Text; 3using System.Text;
4using System.IO;
5 4
6using OpenSim.Region.Environment.Scenes; 5using OpenSim.Region.Environment.Scenes;
7using OpenSim.Region.Environment.LandManagement; 6using OpenSim.Region.Environment.LandManagement;
@@ -31,9 +30,10 @@ namespace OpenSim.DataStore.MonoSqliteStorage
31 30
32 public void Initialise(string dbfile, string dbname) 31 public void Initialise(string dbfile, string dbname)
33 { 32 {
34 // for us, dbfile will be the connect string 33 string connectionString = "URI=file:" + dbfile + ",version=3";
34
35 MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + dbfile); 35 MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + dbfile);
36 SqliteConnection conn = new SqliteConnection(dbfile); 36 SqliteConnection conn = new SqliteConnection(connectionString);
37 37
38 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); 38 SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn);
39 primDa = new SqliteDataAdapter(primSelectCmd); 39 primDa = new SqliteDataAdapter(primSelectCmd);
@@ -301,6 +301,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
301 Convert.ToSingle(row["RotationZ"]), 301 Convert.ToSingle(row["RotationZ"]),
302 Convert.ToSingle(row["RotationW"]) 302 Convert.ToSingle(row["RotationW"])
303 ); 303 );
304
304 return prim; 305 return prim;
305 } 306 }
306 307
diff --git a/bin/Mono.Data.SqliteClient.dll b/bin/Mono.Data.SqliteClient.dll
new file mode 100644
index 0000000..657fbf4
--- /dev/null
+++ b/bin/Mono.Data.SqliteClient.dll
Binary files differ
diff --git a/bin/OpenSim.ini b/bin/OpenSim.ini
new file mode 100644
index 0000000..022d82f
--- /dev/null
+++ b/bin/OpenSim.ini
@@ -0,0 +1,4 @@
1[Startup]
2gridmode = false
3physics = basicphysics
4storage_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 0000000..3b0f23b
--- /dev/null
+++ b/bin/sqlite-3.4.1.so
Binary files differ
diff --git a/bin/sqlite3.def b/bin/sqlite3.def
new file mode 100644
index 0000000..9eb6a4e
--- /dev/null
+++ b/bin/sqlite3.def
@@ -0,0 +1,131 @@
1EXPORTS
2sqlite3_aggregate_context
3sqlite3_aggregate_count
4sqlite3_apis
5sqlite3_auto_extension
6sqlite3_bind_blob
7sqlite3_bind_double
8sqlite3_bind_int
9sqlite3_bind_int64
10sqlite3_bind_null
11sqlite3_bind_parameter_count
12sqlite3_bind_parameter_index
13sqlite3_bind_parameter_name
14sqlite3_bind_text
15sqlite3_bind_text16
16sqlite3_bind_value
17sqlite3_bind_zeroblob
18sqlite3_blob_bytes
19sqlite3_blob_close
20sqlite3_blob_open
21sqlite3_blob_read
22sqlite3_blob_write
23sqlite3_busy_handler
24sqlite3_busy_timeout
25sqlite3_changes
26sqlite3_clear_bindings
27sqlite3_close
28sqlite3_collation_needed
29sqlite3_collation_needed16
30sqlite3_column_blob
31sqlite3_column_bytes
32sqlite3_column_bytes16
33sqlite3_column_count
34sqlite3_column_decltype
35sqlite3_column_decltype16
36sqlite3_column_double
37sqlite3_column_int
38sqlite3_column_int64
39sqlite3_column_name
40sqlite3_column_name16
41sqlite3_column_text
42sqlite3_column_text16
43sqlite3_column_type
44sqlite3_column_value
45sqlite3_commit_hook
46sqlite3_complete
47sqlite3_complete16
48sqlite3_create_collation
49sqlite3_create_collation16
50sqlite3_create_collation_v2
51sqlite3_create_function
52sqlite3_create_function16
53sqlite3_create_module
54sqlite3_create_module_v2
55sqlite3_data_count
56sqlite3_db_handle
57sqlite3_declare_vtab
58sqlite3_enable_load_extension
59sqlite3_enable_shared_cache
60sqlite3_errcode
61sqlite3_errmsg
62sqlite3_errmsg16
63sqlite3_exec
64sqlite3_expired
65sqlite3_extended_result_codes
66sqlite3_finalize
67sqlite3_free
68sqlite3_free_table
69sqlite3_get_autocommit
70sqlite3_get_auxdata
71sqlite3_get_table
72sqlite3_global_recover
73sqlite3_interrupt
74sqlite3_last_insert_rowid
75sqlite3_libversion
76sqlite3_libversion_number
77sqlite3_load_extension
78sqlite3_malloc
79sqlite3_mprintf
80sqlite3_open
81sqlite3_open16
82sqlite3_overload_function
83sqlite3_prepare
84sqlite3_prepare16
85sqlite3_prepare16_v2
86sqlite3_prepare_v2
87sqlite3_profile
88sqlite3_progress_handler
89sqlite3_realloc
90sqlite3_reset
91sqlite3_reset_auto_extension
92sqlite3_result_blob
93sqlite3_result_double
94sqlite3_result_error
95sqlite3_result_error16
96sqlite3_result_error_toobig
97sqlite3_result_int
98sqlite3_result_int64
99sqlite3_result_null
100sqlite3_result_text
101sqlite3_result_text16
102sqlite3_result_text16be
103sqlite3_result_text16le
104sqlite3_result_value
105sqlite3_result_zeroblob
106sqlite3_rollback_hook
107sqlite3_set_authorizer
108sqlite3_set_auxdata
109sqlite3_sleep
110sqlite3_snprintf
111sqlite3_step
112sqlite3_thread_cleanup
113sqlite3_total_changes
114sqlite3_trace
115sqlite3_transfer_bindings
116sqlite3_update_hook
117sqlite3_user_data
118sqlite3_value_blob
119sqlite3_value_bytes
120sqlite3_value_bytes16
121sqlite3_value_double
122sqlite3_value_int
123sqlite3_value_int64
124sqlite3_value_numeric_type
125sqlite3_value_text
126sqlite3_value_text16
127sqlite3_value_text16be
128sqlite3_value_text16le
129sqlite3_value_type
130sqlite3_version
131sqlite3_vmprintf
diff --git a/bin/sqlite3.dll b/bin/sqlite3.dll
new file mode 100644
index 0000000..29258fb
--- /dev/null
+++ b/bin/sqlite3.dll
Binary files differ
diff --git a/prebuild.xml b/prebuild.xml
index 9d61011..572a5de 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -93,11 +93,13 @@
93 <ReferencePath>../../../bin/</ReferencePath> 93 <ReferencePath>../../../bin/</ReferencePath>
94 <Reference name="System"/> 94 <Reference name="System"/>
95 <Reference name="System.Xml"/> 95 <Reference name="System.Xml"/>
96 <Reference name="System.Data"/>
96 <Reference name="libsecondlife.dll"/> 97 <Reference name="libsecondlife.dll"/>
97 <Reference name="Db4objects.Db4o.dll"/> 98 <Reference name="Db4objects.Db4o.dll"/>
98 <Reference name="XMLRPC.dll"/> 99 <Reference name="XMLRPC.dll"/>
99 <Reference name="OpenSim.Framework.Console"/> 100 <Reference name="OpenSim.Framework.Console"/>
100 <Reference name="OpenSim.Framework.Data"/> 101 <Reference name="OpenSim.Framework.Data"/>
102 <Reference name="Nini.dll" />
101 <Files> 103 <Files>
102 <Match pattern="*.cs" recurse="true"/> 104 <Match pattern="*.cs" recurse="true"/>
103 </Files> 105 </Files>
@@ -636,7 +638,7 @@
636 </Files> 638 </Files>
637 </Project> 639 </Project>
638 640
639 <Project name="OpenSim.DataStore.MonoSqlite" path="OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite" type="Library"> 641 <Project name="OpenSim.DataStore.MonoSqlite1" path="OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite" type="Library">
640 <Configuration name="Debug"> 642 <Configuration name="Debug">
641 <Options> 643 <Options>
642 <OutputPath>../../../../bin/</OutputPath> 644 <OutputPath>../../../../bin/</OutputPath>