diff options
author | Melanie | 2010-04-30 19:29:21 +0100 |
---|---|---|
committer | Melanie | 2010-04-30 19:29:21 +0100 |
commit | 23282935f1f25fd44d85193f3c13ea97c755f75c (patch) | |
tree | 689d44f5657dd36e74c3b4d4dd508c86ee90cea1 | |
parent | Fix a null ref from trying to access a dictionary that was never initialized. (diff) | |
parent | * XInventory fairly tested, including for HG. Almost ready to switch. (diff) | |
download | opensim-SC_OLD-23282935f1f25fd44d85193f3c13ea97c755f75c.zip opensim-SC_OLD-23282935f1f25fd44d85193f3c13ea97c755f75c.tar.gz opensim-SC_OLD-23282935f1f25fd44d85193f3c13ea97c755f75c.tar.bz2 opensim-SC_OLD-23282935f1f25fd44d85193f3c13ea97c755f75c.tar.xz |
Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteAssetData.cs | 6 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteAuthenticationData.cs | 23 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteAvatarData.cs | 8 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteEstateData.cs | 48 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteFramework.cs | 14 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteFriendsData.cs | 8 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs | 18 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteInventoryStore.cs | 13 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteRegionData.cs | 261 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteUserAccountData.cs | 4 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteUtils.cs | 2 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteXInventoryData.cs | 4 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs (renamed from OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs) | 4 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql (renamed from OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml (renamed from OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml) | 0 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteAssetData.cs) | 8 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs) | 25 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs) | 10 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteEstateData.cs) | 50 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteFramework.cs) | 16 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs) | 10 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs) | 20 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs) | 15 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteRegionData.cs) | 261 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs) | 6 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteUtils.cs) | 4 | ||||
-rw-r--r-- | OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs (renamed from OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs) | 6 | ||||
-rw-r--r-- | OpenSim/Data/Tests/DataTestUtil.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml | 1 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs | 212 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs | 2 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs | 104 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs | 50 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs | 119 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs | 2 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 10 | ||||
-rw-r--r-- | bin/config-include/StandaloneCommon.ini.example | 8 | ||||
-rw-r--r-- | bin/config-include/storage/SQLiteLegacyStandalone.ini (renamed from bin/config-include/storage/SQLiteNGStandalone.ini) | 2 | ||||
-rw-r--r-- | prebuild.xml | 4 |
83 files changed, 578 insertions, 798 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index a032670..636bf86 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -30,7 +30,7 @@ using System.Data; | |||
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.SqliteClient; | 33 | using Mono.Data.Sqlite; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | 36 | ||
@@ -137,7 +137,7 @@ namespace OpenSim.Data.SQLite | |||
137 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 137 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); |
138 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 138 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); |
139 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 139 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
140 | 140 | ||
141 | cmd.ExecuteNonQuery(); | 141 | cmd.ExecuteNonQuery(); |
142 | } | 142 | } |
143 | } | 143 | } |
@@ -340,4 +340,4 @@ namespace OpenSim.Data.SQLite | |||
340 | 340 | ||
341 | #endregion | 341 | #endregion |
342 | } | 342 | } |
343 | } \ No newline at end of file | 343 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs index aa10734..086ac0a 100644 --- a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs +++ b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs | |||
@@ -31,7 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.SqliteClient; | 34 | using Mono.Data.Sqlite; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLite | 36 | namespace OpenSim.Data.SQLite |
37 | { | 37 | { |
@@ -56,13 +56,8 @@ namespace OpenSim.Data.SQLite | |||
56 | m_Connection = new SqliteConnection(connectionString); | 56 | m_Connection = new SqliteConnection(connectionString); |
57 | m_Connection.Open(); | 57 | m_Connection.Open(); |
58 | 58 | ||
59 | using (SqliteConnection dbcon = (SqliteConnection)((ICloneable)m_Connection).Clone()) | 59 | Migration m = new Migration(m_Connection, GetType().Assembly, "AuthStore"); |
60 | { | 60 | m.Update(); |
61 | dbcon.Open(); | ||
62 | Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore"); | ||
63 | m.Update(); | ||
64 | dbcon.Close(); | ||
65 | } | ||
66 | 61 | ||
67 | m_initialized = true; | 62 | m_initialized = true; |
68 | } | 63 | } |
@@ -113,7 +108,7 @@ namespace OpenSim.Data.SQLite | |||
113 | } | 108 | } |
114 | finally | 109 | finally |
115 | { | 110 | { |
116 | CloseCommand(cmd); | 111 | //CloseCommand(cmd); |
117 | } | 112 | } |
118 | 113 | ||
119 | return null; | 114 | return null; |
@@ -156,14 +151,14 @@ namespace OpenSim.Data.SQLite | |||
156 | { | 151 | { |
157 | if (ExecuteNonQuery(cmd, m_Connection) < 1) | 152 | if (ExecuteNonQuery(cmd, m_Connection) < 1) |
158 | { | 153 | { |
159 | CloseCommand(cmd); | 154 | //CloseCommand(cmd); |
160 | return false; | 155 | return false; |
161 | } | 156 | } |
162 | } | 157 | } |
163 | catch (Exception e) | 158 | catch (Exception e) |
164 | { | 159 | { |
165 | Console.WriteLine(e.ToString()); | 160 | Console.WriteLine(e.ToString()); |
166 | CloseCommand(cmd); | 161 | //CloseCommand(cmd); |
167 | return false; | 162 | return false; |
168 | } | 163 | } |
169 | } | 164 | } |
@@ -184,19 +179,19 @@ namespace OpenSim.Data.SQLite | |||
184 | { | 179 | { |
185 | if (ExecuteNonQuery(cmd, m_Connection) < 1) | 180 | if (ExecuteNonQuery(cmd, m_Connection) < 1) |
186 | { | 181 | { |
187 | CloseCommand(cmd); | 182 | //CloseCommand(cmd); |
188 | return false; | 183 | return false; |
189 | } | 184 | } |
190 | } | 185 | } |
191 | catch (Exception e) | 186 | catch (Exception e) |
192 | { | 187 | { |
193 | Console.WriteLine(e.ToString()); | 188 | Console.WriteLine(e.ToString()); |
194 | CloseCommand(cmd); | 189 | //CloseCommand(cmd); |
195 | return false; | 190 | return false; |
196 | } | 191 | } |
197 | } | 192 | } |
198 | 193 | ||
199 | CloseCommand(cmd); | 194 | //CloseCommand(cmd); |
200 | 195 | ||
201 | return true; | 196 | return true; |
202 | } | 197 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteAvatarData.cs b/OpenSim/Data/SQLite/SQLiteAvatarData.cs index b3f4a4c..c093884 100644 --- a/OpenSim/Data/SQLite/SQLiteAvatarData.cs +++ b/OpenSim/Data/SQLite/SQLiteAvatarData.cs | |||
@@ -33,7 +33,7 @@ using System.Threading; | |||
33 | using log4net; | 33 | using log4net; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using Mono.Data.SqliteClient; | 36 | using Mono.Data.Sqlite; |
37 | 37 | ||
38 | namespace OpenSim.Data.SQLite | 38 | namespace OpenSim.Data.SQLite |
39 | { | 39 | { |
@@ -55,8 +55,8 @@ namespace OpenSim.Data.SQLite | |||
55 | SqliteCommand cmd = new SqliteCommand(); | 55 | SqliteCommand cmd = new SqliteCommand(); |
56 | 56 | ||
57 | cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm); | 57 | cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm); |
58 | cmd.Parameters.Add(":PrincipalID", principalID.ToString()); | 58 | cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString()); |
59 | cmd.Parameters.Add(":Name", name); | 59 | cmd.Parameters.AddWithValue(":Name", name); |
60 | 60 | ||
61 | try | 61 | try |
62 | { | 62 | { |
@@ -67,7 +67,7 @@ namespace OpenSim.Data.SQLite | |||
67 | } | 67 | } |
68 | finally | 68 | finally |
69 | { | 69 | { |
70 | CloseCommand(cmd); | 70 | //CloseCommand(cmd); |
71 | } | 71 | } |
72 | } | 72 | } |
73 | } | 73 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs index bd6b776..9dd4a2e 100644 --- a/OpenSim/Data/SQLite/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs | |||
@@ -30,7 +30,7 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.SqliteClient; | 33 | using Mono.Data.Sqlite; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Region.Framework.Interfaces; | 36 | using OpenSim.Region.Framework.Interfaces; |
@@ -62,8 +62,8 @@ namespace OpenSim.Data.SQLite | |||
62 | Migration m = new Migration(m_connection, assem, "EstateStore"); | 62 | Migration m = new Migration(m_connection, assem, "EstateStore"); |
63 | m.Update(); | 63 | m.Update(); |
64 | 64 | ||
65 | m_connection.Close(); | 65 | //m_connection.Close(); |
66 | m_connection.Open(); | 66 | // m_connection.Open(); |
67 | 67 | ||
68 | Type t = typeof(EstateSettings); | 68 | Type t = typeof(EstateSettings); |
69 | m_Fields = t.GetFields(BindingFlags.NonPublic | | 69 | m_Fields = t.GetFields(BindingFlags.NonPublic | |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.SQLite | |||
87 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 87 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
88 | 88 | ||
89 | cmd.CommandText = sql; | 89 | cmd.CommandText = sql; |
90 | cmd.Parameters.Add(":RegionID", regionID.ToString()); | 90 | cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); |
91 | 91 | ||
92 | return DoLoad(cmd, regionID, create); | 92 | return DoLoad(cmd, regionID, create); |
93 | } | 93 | } |
@@ -143,13 +143,13 @@ namespace OpenSim.Data.SQLite | |||
143 | if (m_FieldMap[name].GetValue(es) is bool) | 143 | if (m_FieldMap[name].GetValue(es) is bool) |
144 | { | 144 | { |
145 | if ((bool)m_FieldMap[name].GetValue(es)) | 145 | if ((bool)m_FieldMap[name].GetValue(es)) |
146 | cmd.Parameters.Add(":"+name, "1"); | 146 | cmd.Parameters.AddWithValue(":"+name, "1"); |
147 | else | 147 | else |
148 | cmd.Parameters.Add(":"+name, "0"); | 148 | cmd.Parameters.AddWithValue(":"+name, "0"); |
149 | } | 149 | } |
150 | else | 150 | else |
151 | { | 151 | { |
152 | cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString()); | 152 | cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString()); |
153 | } | 153 | } |
154 | } | 154 | } |
155 | 155 | ||
@@ -167,8 +167,8 @@ namespace OpenSim.Data.SQLite | |||
167 | r.Close(); | 167 | r.Close(); |
168 | 168 | ||
169 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; | 169 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; |
170 | cmd.Parameters.Add(":RegionID", regionID.ToString()); | 170 | cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); |
171 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); | 171 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); |
172 | 172 | ||
173 | // This will throw on dupe key | 173 | // This will throw on dupe key |
174 | try | 174 | try |
@@ -211,13 +211,13 @@ namespace OpenSim.Data.SQLite | |||
211 | if (m_FieldMap[name].GetValue(es) is bool) | 211 | if (m_FieldMap[name].GetValue(es) is bool) |
212 | { | 212 | { |
213 | if ((bool)m_FieldMap[name].GetValue(es)) | 213 | if ((bool)m_FieldMap[name].GetValue(es)) |
214 | cmd.Parameters.Add(":"+name, "1"); | 214 | cmd.Parameters.AddWithValue(":"+name, "1"); |
215 | else | 215 | else |
216 | cmd.Parameters.Add(":"+name, "0"); | 216 | cmd.Parameters.AddWithValue(":"+name, "0"); |
217 | } | 217 | } |
218 | else | 218 | else |
219 | { | 219 | { |
220 | cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString()); | 220 | cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString()); |
221 | } | 221 | } |
222 | } | 222 | } |
223 | 223 | ||
@@ -236,7 +236,7 @@ namespace OpenSim.Data.SQLite | |||
236 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 236 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
237 | 237 | ||
238 | cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; | 238 | cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; |
239 | cmd.Parameters.Add(":EstateID", es.EstateID); | 239 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID); |
240 | 240 | ||
241 | IDataReader r = cmd.ExecuteReader(); | 241 | IDataReader r = cmd.ExecuteReader(); |
242 | 242 | ||
@@ -260,7 +260,7 @@ namespace OpenSim.Data.SQLite | |||
260 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 260 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
261 | 261 | ||
262 | cmd.CommandText = "delete from estateban where EstateID = :EstateID"; | 262 | cmd.CommandText = "delete from estateban where EstateID = :EstateID"; |
263 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); | 263 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); |
264 | 264 | ||
265 | cmd.ExecuteNonQuery(); | 265 | cmd.ExecuteNonQuery(); |
266 | 266 | ||
@@ -270,8 +270,8 @@ namespace OpenSim.Data.SQLite | |||
270 | 270 | ||
271 | foreach (EstateBan b in es.EstateBans) | 271 | foreach (EstateBan b in es.EstateBans) |
272 | { | 272 | { |
273 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); | 273 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); |
274 | cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString()); | 274 | cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString()); |
275 | 275 | ||
276 | cmd.ExecuteNonQuery(); | 276 | cmd.ExecuteNonQuery(); |
277 | cmd.Parameters.Clear(); | 277 | cmd.Parameters.Clear(); |
@@ -283,7 +283,7 @@ namespace OpenSim.Data.SQLite | |||
283 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 283 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
284 | 284 | ||
285 | cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; | 285 | cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; |
286 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); | 286 | cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); |
287 | 287 | ||
288 | cmd.ExecuteNonQuery(); | 288 | cmd.ExecuteNonQuery(); |
289 | 289 | ||
@@ -293,8 +293,8 @@ namespace OpenSim.Data.SQLite | |||
293 | 293 | ||
294 | foreach (UUID uuid in data) | 294 | foreach (UUID uuid in data) |
295 | { | 295 | { |
296 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); | 296 | cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); |
297 | cmd.Parameters.Add(":uuid", uuid.ToString()); | 297 | cmd.Parameters.AddWithValue(":uuid", uuid.ToString()); |
298 | 298 | ||
299 | cmd.ExecuteNonQuery(); | 299 | cmd.ExecuteNonQuery(); |
300 | cmd.Parameters.Clear(); | 300 | cmd.Parameters.Clear(); |
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLite | |||
308 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 308 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
309 | 309 | ||
310 | cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; | 310 | cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; |
311 | cmd.Parameters.Add(":EstateID", EstateID); | 311 | cmd.Parameters.AddWithValue(":EstateID", EstateID); |
312 | 312 | ||
313 | IDataReader r = cmd.ExecuteReader(); | 313 | IDataReader r = cmd.ExecuteReader(); |
314 | 314 | ||
@@ -333,7 +333,7 @@ namespace OpenSim.Data.SQLite | |||
333 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 333 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
334 | 334 | ||
335 | cmd.CommandText = sql; | 335 | cmd.CommandText = sql; |
336 | cmd.Parameters.Add(":EstateID", estateID.ToString()); | 336 | cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); |
337 | 337 | ||
338 | return DoLoad(cmd, UUID.Zero, false); | 338 | return DoLoad(cmd, UUID.Zero, false); |
339 | } | 339 | } |
@@ -347,7 +347,7 @@ namespace OpenSim.Data.SQLite | |||
347 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 347 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
348 | 348 | ||
349 | cmd.CommandText = sql; | 349 | cmd.CommandText = sql; |
350 | cmd.Parameters.Add(":EstateName", search); | 350 | cmd.Parameters.AddWithValue(":EstateName", search); |
351 | 351 | ||
352 | IDataReader r = cmd.ExecuteReader(); | 352 | IDataReader r = cmd.ExecuteReader(); |
353 | 353 | ||
@@ -365,8 +365,8 @@ namespace OpenSim.Data.SQLite | |||
365 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 365 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
366 | 366 | ||
367 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; | 367 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; |
368 | cmd.Parameters.Add(":RegionID", regionID.ToString()); | 368 | cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); |
369 | cmd.Parameters.Add(":EstateID", estateID.ToString()); | 369 | cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); |
370 | 370 | ||
371 | if (cmd.ExecuteNonQuery() == 0) | 371 | if (cmd.ExecuteNonQuery() == 0) |
372 | return false; | 372 | return false; |
diff --git a/OpenSim/Data/SQLite/SQLiteFramework.cs b/OpenSim/Data/SQLite/SQLiteFramework.cs index 20b5085..cf114d1 100644 --- a/OpenSim/Data/SQLite/SQLiteFramework.cs +++ b/OpenSim/Data/SQLite/SQLiteFramework.cs | |||
@@ -31,7 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.SqliteClient; | 34 | using Mono.Data.Sqlite; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLite | 36 | namespace OpenSim.Data.SQLite |
37 | { | 37 | { |
@@ -55,11 +55,14 @@ namespace OpenSim.Data.SQLite | |||
55 | { | 55 | { |
56 | lock (connection) | 56 | lock (connection) |
57 | { | 57 | { |
58 | /* | ||
58 | SqliteConnection newConnection = | 59 | SqliteConnection newConnection = |
59 | (SqliteConnection)((ICloneable)connection).Clone(); | 60 | (SqliteConnection)((ICloneable)connection).Clone(); |
60 | newConnection.Open(); | 61 | newConnection.Open(); |
61 | 62 | ||
62 | cmd.Connection = newConnection; | 63 | cmd.Connection = newConnection; |
64 | */ | ||
65 | cmd.Connection = connection; | ||
63 | //Console.WriteLine("XXX " + cmd.CommandText); | 66 | //Console.WriteLine("XXX " + cmd.CommandText); |
64 | 67 | ||
65 | return cmd.ExecuteNonQuery(); | 68 | return cmd.ExecuteNonQuery(); |
@@ -70,11 +73,12 @@ namespace OpenSim.Data.SQLite | |||
70 | { | 73 | { |
71 | lock (connection) | 74 | lock (connection) |
72 | { | 75 | { |
73 | SqliteConnection newConnection = | 76 | //SqliteConnection newConnection = |
74 | (SqliteConnection)((ICloneable)connection).Clone(); | 77 | // (SqliteConnection)((ICloneable)connection).Clone(); |
75 | newConnection.Open(); | 78 | //newConnection.Open(); |
76 | 79 | ||
77 | cmd.Connection = newConnection; | 80 | //cmd.Connection = newConnection; |
81 | cmd.Connection = connection; | ||
78 | //Console.WriteLine("XXX " + cmd.CommandText); | 82 | //Console.WriteLine("XXX " + cmd.CommandText); |
79 | 83 | ||
80 | return cmd.ExecuteReader(); | 84 | return cmd.ExecuteReader(); |
diff --git a/OpenSim/Data/SQLite/SQLiteFriendsData.cs b/OpenSim/Data/SQLite/SQLiteFriendsData.cs index 0b12182..b06853c 100644 --- a/OpenSim/Data/SQLite/SQLiteFriendsData.cs +++ b/OpenSim/Data/SQLite/SQLiteFriendsData.cs | |||
@@ -31,7 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.SqliteClient; | 34 | using Mono.Data.Sqlite; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLite | 36 | namespace OpenSim.Data.SQLite |
37 | { | 37 | { |
@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLite | |||
47 | SqliteCommand cmd = new SqliteCommand(); | 47 | SqliteCommand cmd = new SqliteCommand(); |
48 | 48 | ||
49 | cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm); | 49 | cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm); |
50 | cmd.Parameters.Add(":PrincipalID", userID.ToString()); | 50 | cmd.Parameters.AddWithValue(":PrincipalID", userID.ToString()); |
51 | 51 | ||
52 | return DoQuery(cmd); | 52 | return DoQuery(cmd); |
53 | 53 | ||
@@ -58,8 +58,8 @@ namespace OpenSim.Data.SQLite | |||
58 | SqliteCommand cmd = new SqliteCommand(); | 58 | SqliteCommand cmd = new SqliteCommand(); |
59 | 59 | ||
60 | cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm); | 60 | cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm); |
61 | cmd.Parameters.Add(":PrincipalID", principalID.ToString()); | 61 | cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString()); |
62 | cmd.Parameters.Add(":Friend", friend); | 62 | cmd.Parameters.AddWithValue(":Friend", friend); |
63 | 63 | ||
64 | ExecuteNonQuery(cmd, cmd.Connection); | 64 | ExecuteNonQuery(cmd, cmd.Connection); |
65 | 65 | ||
diff --git a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs index b39bb19..3c70aef 100644 --- a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs +++ b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs | |||
@@ -30,7 +30,7 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.SqliteClient; | 33 | using Mono.Data.Sqlite; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Region.Framework.Interfaces; | 36 | using OpenSim.Region.Framework.Interfaces; |
@@ -59,19 +59,21 @@ namespace OpenSim.Data.SQLite | |||
59 | if (!m_initialized) | 59 | if (!m_initialized) |
60 | { | 60 | { |
61 | m_Connection = new SqliteConnection(connectionString); | 61 | m_Connection = new SqliteConnection(connectionString); |
62 | Console.WriteLine(string.Format("OPENING CONNECTION FOR {0} USING {1}", storeName, connectionString)); | ||
62 | m_Connection.Open(); | 63 | m_Connection.Open(); |
63 | 64 | ||
64 | if (storeName != String.Empty) | 65 | if (storeName != String.Empty) |
65 | { | 66 | { |
66 | Assembly assem = GetType().Assembly; | 67 | Assembly assem = GetType().Assembly; |
67 | SqliteConnection newConnection = | 68 | //SqliteConnection newConnection = |
68 | (SqliteConnection)((ICloneable)m_Connection).Clone(); | 69 | // (SqliteConnection)((ICloneable)m_Connection).Clone(); |
69 | newConnection.Open(); | 70 | //newConnection.Open(); |
70 | 71 | ||
71 | Migration m = new Migration(newConnection, assem, storeName); | 72 | //Migration m = new Migration(newConnection, assem, storeName); |
73 | Migration m = new Migration(m_Connection, assem, storeName); | ||
72 | m.Update(); | 74 | m.Update(); |
73 | newConnection.Close(); | 75 | //newConnection.Close(); |
74 | newConnection.Dispose(); | 76 | //newConnection.Dispose(); |
75 | } | 77 | } |
76 | 78 | ||
77 | m_initialized = true; | 79 | m_initialized = true; |
@@ -197,7 +199,7 @@ namespace OpenSim.Data.SQLite | |||
197 | result.Add(row); | 199 | result.Add(row); |
198 | } | 200 | } |
199 | 201 | ||
200 | CloseCommand(cmd); | 202 | //CloseCommand(cmd); |
201 | 203 | ||
202 | return result.ToArray(); | 204 | return result.ToArray(); |
203 | } | 205 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs index a5e0517..ece2495 100644 --- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs | |||
@@ -30,7 +30,7 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.SqliteClient; | 33 | using Mono.Data.Sqlite; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | 36 | ||
@@ -98,11 +98,13 @@ namespace OpenSim.Data.SQLite | |||
98 | ds.Tables.Add(createInventoryFoldersTable()); | 98 | ds.Tables.Add(createInventoryFoldersTable()); |
99 | invFoldersDa.Fill(ds.Tables["inventoryfolders"]); | 99 | invFoldersDa.Fill(ds.Tables["inventoryfolders"]); |
100 | setupFoldersCommands(invFoldersDa, conn); | 100 | setupFoldersCommands(invFoldersDa, conn); |
101 | CreateDataSetMapping(invFoldersDa, "inventoryfolders"); | ||
101 | m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions"); | 102 | m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions"); |
102 | 103 | ||
103 | ds.Tables.Add(createInventoryItemsTable()); | 104 | ds.Tables.Add(createInventoryItemsTable()); |
104 | invItemsDa.Fill(ds.Tables["inventoryitems"]); | 105 | invItemsDa.Fill(ds.Tables["inventoryitems"]); |
105 | setupItemsCommands(invItemsDa, conn); | 106 | setupItemsCommands(invItemsDa, conn); |
107 | CreateDataSetMapping(invItemsDa, "inventoryitems"); | ||
106 | m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions"); | 108 | m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions"); |
107 | 109 | ||
108 | ds.AcceptChanges(); | 110 | ds.AcceptChanges(); |
@@ -728,6 +730,15 @@ namespace OpenSim.Data.SQLite | |||
728 | * | 730 | * |
729 | **********************************************************************/ | 731 | **********************************************************************/ |
730 | 732 | ||
733 | protected void CreateDataSetMapping(IDataAdapter da, string tableName) | ||
734 | { | ||
735 | ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName); | ||
736 | foreach (DataColumn col in ds.Tables[tableName].Columns) | ||
737 | { | ||
738 | dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName); | ||
739 | } | ||
740 | } | ||
741 | |||
731 | /// <summary> | 742 | /// <summary> |
732 | /// Create the "inventoryitems" table | 743 | /// Create the "inventoryitems" table |
733 | /// </summary> | 744 | /// </summary> |
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs index d2ba9ae..997664a 100644 --- a/OpenSim/Data/SQLite/SQLiteRegionData.cs +++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs | |||
@@ -32,7 +32,7 @@ using System.Drawing; | |||
32 | using System.IO; | 32 | using System.IO; |
33 | using System.Reflection; | 33 | using System.Reflection; |
34 | using log4net; | 34 | using log4net; |
35 | using Mono.Data.SqliteClient; | 35 | using Mono.Data.Sqlite; |
36 | using OpenMetaverse; | 36 | using OpenMetaverse; |
37 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
38 | using OpenSim.Region.Framework.Interfaces; | 38 | using OpenSim.Region.Framework.Interfaces; |
@@ -87,119 +87,142 @@ namespace OpenSim.Data.SQLite | |||
87 | /// <param name="connectionString">the connection string</param> | 87 | /// <param name="connectionString">the connection string</param> |
88 | public void Initialise(string connectionString) | 88 | public void Initialise(string connectionString) |
89 | { | 89 | { |
90 | m_connectionString = connectionString; | 90 | try |
91 | { | ||
92 | m_connectionString = connectionString; | ||
91 | 93 | ||
92 | ds = new DataSet(); | 94 | ds = new DataSet("Region"); |
93 | 95 | ||
94 | m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString); | 96 | m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString); |
95 | m_conn = new SqliteConnection(m_connectionString); | 97 | m_conn = new SqliteConnection(m_connectionString); |
96 | m_conn.Open(); | 98 | m_conn.Open(); |
97 | 99 | ||
100 | SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn); | ||
101 | primDa = new SqliteDataAdapter(primSelectCmd); | ||
98 | 102 | ||
103 | SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn); | ||
104 | shapeDa = new SqliteDataAdapter(shapeSelectCmd); | ||
105 | // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa); | ||
99 | 106 | ||
100 | SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn); | 107 | SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn); |
101 | primDa = new SqliteDataAdapter(primSelectCmd); | 108 | itemsDa = new SqliteDataAdapter(itemsSelectCmd); |
102 | // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa); | ||
103 | 109 | ||
104 | SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn); | 110 | SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn); |
105 | shapeDa = new SqliteDataAdapter(shapeSelectCmd); | 111 | terrainDa = new SqliteDataAdapter(terrainSelectCmd); |
106 | // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa); | ||
107 | 112 | ||
108 | SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn); | 113 | SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn); |
109 | itemsDa = new SqliteDataAdapter(itemsSelectCmd); | 114 | landDa = new SqliteDataAdapter(landSelectCmd); |
110 | 115 | ||
111 | SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn); | 116 | SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn); |
112 | terrainDa = new SqliteDataAdapter(terrainSelectCmd); | 117 | landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd); |
113 | 118 | ||
114 | SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn); | 119 | SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); |
115 | landDa = new SqliteDataAdapter(landSelectCmd); | 120 | regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); |
121 | // This actually does the roll forward assembly stuff | ||
122 | Assembly assem = GetType().Assembly; | ||
123 | Migration m = new Migration(m_conn, assem, "RegionStore"); | ||
124 | m.Update(); | ||
116 | 125 | ||
117 | SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn); | 126 | lock (ds) |
118 | landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd); | 127 | { |
128 | ds.Tables.Add(createPrimTable()); | ||
129 | setupPrimCommands(primDa, m_conn); | ||
119 | 130 | ||
120 | SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); | 131 | ds.Tables.Add(createShapeTable()); |
121 | regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); | 132 | setupShapeCommands(shapeDa, m_conn); |
122 | // This actually does the roll forward assembly stuff | ||
123 | Assembly assem = GetType().Assembly; | ||
124 | Migration m = new Migration(m_conn, assem, "RegionStore"); | ||
125 | m.Update(); | ||
126 | 133 | ||
127 | lock (ds) | 134 | ds.Tables.Add(createItemsTable()); |
128 | { | 135 | setupItemsCommands(itemsDa, m_conn); |
129 | ds.Tables.Add(createPrimTable()); | ||
130 | setupPrimCommands(primDa, m_conn); | ||
131 | primDa.Fill(ds.Tables["prims"]); | ||
132 | 136 | ||
133 | ds.Tables.Add(createShapeTable()); | 137 | ds.Tables.Add(createTerrainTable()); |
134 | setupShapeCommands(shapeDa, m_conn); | 138 | setupTerrainCommands(terrainDa, m_conn); |
135 | 139 | ||
136 | ds.Tables.Add(createItemsTable()); | 140 | ds.Tables.Add(createLandTable()); |
137 | setupItemsCommands(itemsDa, m_conn); | 141 | setupLandCommands(landDa, m_conn); |
138 | itemsDa.Fill(ds.Tables["primitems"]); | ||
139 | 142 | ||
140 | ds.Tables.Add(createTerrainTable()); | 143 | ds.Tables.Add(createLandAccessListTable()); |
141 | setupTerrainCommands(terrainDa, m_conn); | 144 | setupLandAccessCommands(landAccessListDa, m_conn); |
142 | 145 | ||
143 | ds.Tables.Add(createLandTable()); | 146 | ds.Tables.Add(createRegionSettingsTable()); |
144 | setupLandCommands(landDa, m_conn); | 147 | setupRegionSettingsCommands(regionSettingsDa, m_conn); |
145 | 148 | ||
146 | ds.Tables.Add(createLandAccessListTable()); | 149 | // WORKAROUND: This is a work around for sqlite on |
147 | setupLandAccessCommands(landAccessListDa, m_conn); | 150 | // windows, which gets really unhappy with blob columns |
151 | // that have no sample data in them. At some point we | ||
152 | // need to actually find a proper way to handle this. | ||
153 | try | ||
154 | { | ||
155 | primDa.Fill(ds.Tables["prims"]); | ||
156 | } | ||
157 | catch (Exception) | ||
158 | { | ||
159 | m_log.Info("[REGION DB]: Caught fill error on prims table"); | ||
160 | } | ||
148 | 161 | ||
149 | ds.Tables.Add(createRegionSettingsTable()); | 162 | try |
150 | 163 | { | |
151 | setupRegionSettingsCommands(regionSettingsDa, m_conn); | 164 | shapeDa.Fill(ds.Tables["primshapes"]); |
165 | } | ||
166 | catch (Exception) | ||
167 | { | ||
168 | m_log.Info("[REGION DB]: Caught fill error on primshapes table"); | ||
169 | } | ||
152 | 170 | ||
153 | // WORKAROUND: This is a work around for sqlite on | 171 | try |
154 | // windows, which gets really unhappy with blob columns | 172 | { |
155 | // that have no sample data in them. At some point we | 173 | terrainDa.Fill(ds.Tables["terrain"]); |
156 | // need to actually find a proper way to handle this. | 174 | } |
157 | try | 175 | catch (Exception) |
158 | { | 176 | { |
159 | shapeDa.Fill(ds.Tables["primshapes"]); | 177 | m_log.Info("[REGION DB]: Caught fill error on terrain table"); |
160 | } | 178 | } |
161 | catch (Exception) | ||
162 | { | ||
163 | m_log.Info("[REGION DB]: Caught fill error on primshapes table"); | ||
164 | } | ||
165 | 179 | ||
166 | try | 180 | try |
167 | { | 181 | { |
168 | terrainDa.Fill(ds.Tables["terrain"]); | 182 | landDa.Fill(ds.Tables["land"]); |
169 | } | 183 | } |
170 | catch (Exception) | 184 | catch (Exception) |
171 | { | 185 | { |
172 | m_log.Info("[REGION DB]: Caught fill error on terrain table"); | 186 | m_log.Info("[REGION DB]: Caught fill error on land table"); |
173 | } | 187 | } |
174 | 188 | ||
175 | try | 189 | try |
176 | { | 190 | { |
177 | landDa.Fill(ds.Tables["land"]); | 191 | landAccessListDa.Fill(ds.Tables["landaccesslist"]); |
178 | } | 192 | } |
179 | catch (Exception) | 193 | catch (Exception) |
180 | { | 194 | { |
181 | m_log.Info("[REGION DB]: Caught fill error on land table"); | 195 | m_log.Info("[REGION DB]: Caught fill error on landaccesslist table"); |
182 | } | 196 | } |
183 | 197 | ||
184 | try | 198 | try |
185 | { | 199 | { |
186 | landAccessListDa.Fill(ds.Tables["landaccesslist"]); | 200 | regionSettingsDa.Fill(ds.Tables["regionsettings"]); |
187 | } | 201 | } |
188 | catch (Exception) | 202 | catch (Exception) |
189 | { | 203 | { |
190 | m_log.Info("[REGION DB]: Caught fill error on landaccesslist table"); | 204 | m_log.Info("[REGION DB]: Caught fill error on regionsettings table"); |
191 | } | 205 | } |
192 | 206 | ||
193 | try | 207 | // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values! |
194 | { | 208 | // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409 |
195 | regionSettingsDa.Fill(ds.Tables["regionsettings"]); | 209 | // Possibly because we manually set up our own DataTables before connecting to the database |
196 | } | 210 | CreateDataSetMapping(primDa, "prims"); |
197 | catch (Exception) | 211 | CreateDataSetMapping(shapeDa, "primshapes"); |
198 | { | 212 | CreateDataSetMapping(itemsDa, "primitems"); |
199 | m_log.Info("[REGION DB]: Caught fill error on regionsettings table"); | 213 | CreateDataSetMapping(terrainDa, "terrain"); |
214 | CreateDataSetMapping(landDa, "land"); | ||
215 | CreateDataSetMapping(landAccessListDa, "landaccesslist"); | ||
216 | CreateDataSetMapping(regionSettingsDa, "regionsettings"); | ||
200 | } | 217 | } |
201 | return; | ||
202 | } | 218 | } |
219 | catch (Exception e) | ||
220 | { | ||
221 | m_log.Error(e); | ||
222 | Environment.Exit(23); | ||
223 | } | ||
224 | |||
225 | return; | ||
203 | } | 226 | } |
204 | 227 | ||
205 | public void Dispose() | 228 | public void Dispose() |
@@ -603,7 +626,7 @@ namespace OpenSim.Data.SQLite | |||
603 | } | 626 | } |
604 | } | 627 | } |
605 | } | 628 | } |
606 | rev = (int) row["Revision"]; | 629 | rev = Convert.ToInt32(row["Revision"]); |
607 | } | 630 | } |
608 | else | 631 | else |
609 | { | 632 | { |
@@ -755,6 +778,7 @@ namespace OpenSim.Data.SQLite | |||
755 | /// </summary> | 778 | /// </summary> |
756 | public void Commit() | 779 | public void Commit() |
757 | { | 780 | { |
781 | //m_log.Debug("[SQLITE]: Starting commit"); | ||
758 | lock (ds) | 782 | lock (ds) |
759 | { | 783 | { |
760 | primDa.Update(ds, "prims"); | 784 | primDa.Update(ds, "prims"); |
@@ -769,18 +793,11 @@ namespace OpenSim.Data.SQLite | |||
769 | { | 793 | { |
770 | regionSettingsDa.Update(ds, "regionsettings"); | 794 | regionSettingsDa.Update(ds, "regionsettings"); |
771 | } | 795 | } |
772 | catch (SqliteExecutionException SqlEx) | 796 | catch (SqliteException SqlEx) |
773 | { | 797 | { |
774 | if (SqlEx.Message.Contains("logic error")) | 798 | throw new Exception( |
775 | { | 799 | "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!", |
776 | throw new Exception( | 800 | SqlEx); |
777 | "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!", | ||
778 | SqlEx); | ||
779 | } | ||
780 | else | ||
781 | { | ||
782 | throw SqlEx; | ||
783 | } | ||
784 | } | 801 | } |
785 | ds.AcceptChanges(); | 802 | ds.AcceptChanges(); |
786 | } | 803 | } |
@@ -802,6 +819,15 @@ namespace OpenSim.Data.SQLite | |||
802 | * | 819 | * |
803 | **********************************************************************/ | 820 | **********************************************************************/ |
804 | 821 | ||
822 | protected void CreateDataSetMapping(IDataAdapter da, string tableName) | ||
823 | { | ||
824 | ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName); | ||
825 | foreach (DataColumn col in ds.Tables[tableName].Columns) | ||
826 | { | ||
827 | dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName); | ||
828 | } | ||
829 | } | ||
830 | |||
805 | /// <summary> | 831 | /// <summary> |
806 | /// | 832 | /// |
807 | /// </summary> | 833 | /// </summary> |
@@ -1897,7 +1923,7 @@ namespace OpenSim.Data.SQLite | |||
1897 | /// <param name="items"></param> | 1923 | /// <param name="items"></param> |
1898 | public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) | 1924 | public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) |
1899 | { | 1925 | { |
1900 | m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID); | 1926 | //m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID); |
1901 | 1927 | ||
1902 | DataTable dbItems = ds.Tables["primitems"]; | 1928 | DataTable dbItems = ds.Tables["primitems"]; |
1903 | 1929 | ||
@@ -1964,6 +1990,7 @@ namespace OpenSim.Data.SQLite | |||
1964 | sql += ") values (:"; | 1990 | sql += ") values (:"; |
1965 | sql += String.Join(", :", cols); | 1991 | sql += String.Join(", :", cols); |
1966 | sql += ")"; | 1992 | sql += ")"; |
1993 | //m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql); | ||
1967 | SqliteCommand cmd = new SqliteCommand(sql); | 1994 | SqliteCommand cmd = new SqliteCommand(sql); |
1968 | 1995 | ||
1969 | // this provides the binding for all our parameters, so | 1996 | // this provides the binding for all our parameters, so |
@@ -2259,6 +2286,36 @@ namespace OpenSim.Data.SQLite | |||
2259 | return DbType.String; | 2286 | return DbType.String; |
2260 | } | 2287 | } |
2261 | } | 2288 | } |
2289 | |||
2290 | static void PrintDataSet(DataSet ds) | ||
2291 | { | ||
2292 | // Print out any name and extended properties. | ||
2293 | Console.WriteLine("DataSet is named: {0}", ds.DataSetName); | ||
2294 | foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties) | ||
2295 | { | ||
2296 | Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value); | ||
2297 | } | ||
2298 | Console.WriteLine(); | ||
2299 | foreach (DataTable dt in ds.Tables) | ||
2300 | { | ||
2301 | Console.WriteLine("=> {0} Table:", dt.TableName); | ||
2302 | // Print out the column names. | ||
2303 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | ||
2304 | { | ||
2305 | Console.Write(dt.Columns[curCol].ColumnName + "\t"); | ||
2306 | } | ||
2307 | Console.WriteLine("\n----------------------------------"); | ||
2308 | // Print the DataTable. | ||
2309 | for (int curRow = 0; curRow < dt.Rows.Count; curRow++) | ||
2310 | { | ||
2311 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | ||
2312 | { | ||
2313 | Console.Write(dt.Rows[curRow][curCol].ToString() + "\t"); | ||
2314 | } | ||
2315 | Console.WriteLine(); | ||
2316 | } | ||
2317 | } | ||
2318 | } | ||
2262 | 2319 | ||
2263 | } | 2320 | } |
2264 | } | 2321 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs index 67cf716..893f105 100644 --- a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs | |||
@@ -31,7 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.SqliteClient; | 34 | using Mono.Data.Sqlite; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLite | 36 | namespace OpenSim.Data.SQLite |
37 | { | 37 | { |
@@ -66,7 +66,7 @@ namespace OpenSim.Data.SQLite | |||
66 | 66 | ||
67 | if (words.Length == 1) | 67 | if (words.Length == 1) |
68 | { | 68 | { |
69 | cmd.CommandText = String.Format("select * from {0} where (ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')", | 69 | cmd.CommandText = String.Format("select * from {0} where ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')", |
70 | m_Realm, scopeID.ToString(), words[0]); | 70 | m_Realm, scopeID.ToString(), words[0]); |
71 | } | 71 | } |
72 | else | 72 | else |
diff --git a/OpenSim/Data/SQLite/SQLiteUtils.cs b/OpenSim/Data/SQLite/SQLiteUtils.cs index 4a835ce..07c6b69 100644 --- a/OpenSim/Data/SQLite/SQLiteUtils.cs +++ b/OpenSim/Data/SQLite/SQLiteUtils.cs | |||
@@ -27,7 +27,7 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Data; | 29 | using System.Data; |
30 | using Mono.Data.SqliteClient; | 30 | using Mono.Data.Sqlite; |
31 | 31 | ||
32 | namespace OpenSim.Data.SQLite | 32 | namespace OpenSim.Data.SQLite |
33 | { | 33 | { |
diff --git a/OpenSim/Data/SQLite/SQLiteXInventoryData.cs b/OpenSim/Data/SQLite/SQLiteXInventoryData.cs index a66e0c6..be1d041 100644 --- a/OpenSim/Data/SQLite/SQLiteXInventoryData.cs +++ b/OpenSim/Data/SQLite/SQLiteXInventoryData.cs | |||
@@ -29,7 +29,7 @@ using System; | |||
29 | using System.Data; | 29 | using System.Data; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using Mono.Data.SqliteClient; | 32 | using Mono.Data.Sqlite; |
33 | using log4net; | 33 | using log4net; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
@@ -147,7 +147,7 @@ namespace OpenSim.Data.SQLite | |||
147 | } | 147 | } |
148 | 148 | ||
149 | reader.Close(); | 149 | reader.Close(); |
150 | CloseCommand(cmd); | 150 | //CloseCommand(cmd); |
151 | 151 | ||
152 | return perms; | 152 | return perms; |
153 | } | 153 | } |
diff --git a/OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs b/OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs index 4aeb67b..609a024 100644 --- a/OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs +++ b/OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs | |||
@@ -32,11 +32,11 @@ using System.Runtime.InteropServices; | |||
32 | // set of attributes. Change these attribute values to modify the information | 32 | // set of attributes. Change these attribute values to modify the information |
33 | // associated with an assembly. | 33 | // associated with an assembly. |
34 | 34 | ||
35 | [assembly : AssemblyTitle("OpenSim.Data.SQLiteNG")] | 35 | [assembly : AssemblyTitle("OpenSim.Data.SQLiteLegacy")] |
36 | [assembly : AssemblyDescription("")] | 36 | [assembly : AssemblyDescription("")] |
37 | [assembly : AssemblyConfiguration("")] | 37 | [assembly : AssemblyConfiguration("")] |
38 | [assembly : AssemblyCompany("http://opensimulator.org")] | 38 | [assembly : AssemblyCompany("http://opensimulator.org")] |
39 | [assembly : AssemblyProduct("OpenSim.Data.SQLiteNG")] | 39 | [assembly : AssemblyProduct("OpenSim.Data.SQLiteLegacy")] |
40 | [assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")] | 40 | [assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")] |
41 | [assembly : AssemblyTrademark("")] | 41 | [assembly : AssemblyTrademark("")] |
42 | [assembly : AssemblyCulture("")] | 42 | [assembly : AssemblyCulture("")] |
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql index 2e026ca..2e026ca 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql index 468567d..468567d 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql index 7ec906b..7ec906b 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql index f1b9ab9..f1b9ab9 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql index 554d5c2..554d5c2 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql index 39e8180..39e8180 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql index c38d9a7..c38d9a7 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql index b584594..b584594 100644 --- a/OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql index 5339b84..5339b84 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql index 3237b68..3237b68 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql index 6733502..6733502 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql index 01951d6..01951d6 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql index c5c7c99..c5c7c99 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql index c7a6293..c7a6293 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql index 48fc680..48fc680 100644 --- a/OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql index f54f8d9..f54f8d9 100644 --- a/OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql index 4c6da91..4c6da91 100644 --- a/OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql index 4db2f75..4db2f75 100644 --- a/OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql index 6f890ee..6f890ee 100644 --- a/OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql index 39421c4..39421c4 100644 --- a/OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql index e8f4d46..e8f4d46 100644 --- a/OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql index de328cb..de328cb 100644 --- a/OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql index 03142af..03142af 100644 --- a/OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql index 1f6d1bd..1f6d1bd 100644 --- a/OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql index e45c09a..e45c09a 100644 --- a/OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql index 94ed818..94ed818 100644 --- a/OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql index f9454c5..f9454c5 100644 --- a/OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql index 1c813a0..1c813a0 100644 --- a/OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql index 8b0cd28..8b0cd28 100644 --- a/OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql index 28bfbf5..28bfbf5 100644 --- a/OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql index 97da818..97da818 100644 --- a/OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql index 1f40548..1f40548 100644 --- a/OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql index 8ab03ef..8ab03ef 100644 --- a/OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql index b91ccf0..b91ccf0 100644 --- a/OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql index 5f956da..5f956da 100644 --- a/OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql index 42bef89..42bef89 100644 --- a/OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql index d952b78..d952b78 100644 --- a/OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql index 11529cd..11529cd 100644 --- a/OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql index c59b27e..c59b27e 100644 --- a/OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql index c43f356..c43f356 100644 --- a/OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql index 52f160c..52f160c 100644 --- a/OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql index 6c6b7b5..6c6b7b5 100644 --- a/OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql index 6a390c2..6a390c2 100644 --- a/OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql +++ b/OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql | |||
diff --git a/OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml b/OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml index e6764fa..e6764fa 100644 --- a/OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml +++ b/OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml | |||
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAssetData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs index 9b34a21..0d63dea 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs | |||
@@ -30,11 +30,11 @@ using System.Data; | |||
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.Sqlite; | 33 | using Mono.Data.SqliteClient; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | 36 | ||
37 | namespace OpenSim.Data.SQLiteNG | 37 | namespace OpenSim.Data.SQLiteLegacy |
38 | { | 38 | { |
39 | /// <summary> | 39 | /// <summary> |
40 | /// An asset storage interface for the SQLite database system | 40 | /// An asset storage interface for the SQLite database system |
@@ -137,7 +137,7 @@ namespace OpenSim.Data.SQLiteNG | |||
137 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 137 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); |
138 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 138 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); |
139 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 139 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
140 | 140 | ||
141 | cmd.ExecuteNonQuery(); | 141 | cmd.ExecuteNonQuery(); |
142 | } | 142 | } |
143 | } | 143 | } |
@@ -340,4 +340,4 @@ namespace OpenSim.Data.SQLiteNG | |||
340 | 340 | ||
341 | #endregion | 341 | #endregion |
342 | } | 342 | } |
343 | } | 343 | } \ No newline at end of file |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs index 4a5dc2e..c64830a 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs | |||
@@ -31,9 +31,9 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.Sqlite; | 34 | using Mono.Data.SqliteClient; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLiteNG | 36 | namespace OpenSim.Data.SQLiteLegacy |
37 | { | 37 | { |
38 | public class SQLiteAuthenticationData : SQLiteFramework, IAuthenticationData | 38 | public class SQLiteAuthenticationData : SQLiteFramework, IAuthenticationData |
39 | { | 39 | { |
@@ -56,8 +56,13 @@ namespace OpenSim.Data.SQLiteNG | |||
56 | m_Connection = new SqliteConnection(connectionString); | 56 | m_Connection = new SqliteConnection(connectionString); |
57 | m_Connection.Open(); | 57 | m_Connection.Open(); |
58 | 58 | ||
59 | Migration m = new Migration(m_Connection, GetType().Assembly, "AuthStore"); | 59 | using (SqliteConnection dbcon = (SqliteConnection)((ICloneable)m_Connection).Clone()) |
60 | m.Update(); | 60 | { |
61 | dbcon.Open(); | ||
62 | Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore"); | ||
63 | m.Update(); | ||
64 | dbcon.Close(); | ||
65 | } | ||
61 | 66 | ||
62 | m_initialized = true; | 67 | m_initialized = true; |
63 | } | 68 | } |
@@ -108,7 +113,7 @@ namespace OpenSim.Data.SQLiteNG | |||
108 | } | 113 | } |
109 | finally | 114 | finally |
110 | { | 115 | { |
111 | //CloseCommand(cmd); | 116 | CloseCommand(cmd); |
112 | } | 117 | } |
113 | 118 | ||
114 | return null; | 119 | return null; |
@@ -151,14 +156,14 @@ namespace OpenSim.Data.SQLiteNG | |||
151 | { | 156 | { |
152 | if (ExecuteNonQuery(cmd, m_Connection) < 1) | 157 | if (ExecuteNonQuery(cmd, m_Connection) < 1) |
153 | { | 158 | { |
154 | //CloseCommand(cmd); | 159 | CloseCommand(cmd); |
155 | return false; | 160 | return false; |
156 | } | 161 | } |
157 | } | 162 | } |
158 | catch (Exception e) | 163 | catch (Exception e) |
159 | { | 164 | { |
160 | Console.WriteLine(e.ToString()); | 165 | Console.WriteLine(e.ToString()); |
161 | //CloseCommand(cmd); | 166 | CloseCommand(cmd); |
162 | return false; | 167 | return false; |
163 | } | 168 | } |
164 | } | 169 | } |
@@ -179,19 +184,19 @@ namespace OpenSim.Data.SQLiteNG | |||
179 | { | 184 | { |
180 | if (ExecuteNonQuery(cmd, m_Connection) < 1) | 185 | if (ExecuteNonQuery(cmd, m_Connection) < 1) |
181 | { | 186 | { |
182 | //CloseCommand(cmd); | 187 | CloseCommand(cmd); |
183 | return false; | 188 | return false; |
184 | } | 189 | } |
185 | } | 190 | } |
186 | catch (Exception e) | 191 | catch (Exception e) |
187 | { | 192 | { |
188 | Console.WriteLine(e.ToString()); | 193 | Console.WriteLine(e.ToString()); |
189 | //CloseCommand(cmd); | 194 | CloseCommand(cmd); |
190 | return false; | 195 | return false; |
191 | } | 196 | } |
192 | } | 197 | } |
193 | 198 | ||
194 | //CloseCommand(cmd); | 199 | CloseCommand(cmd); |
195 | 200 | ||
196 | return true; | 201 | return true; |
197 | } | 202 | } |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs index d0fd49c..660632c 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs | |||
@@ -33,9 +33,9 @@ using System.Threading; | |||
33 | using log4net; | 33 | using log4net; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using Mono.Data.Sqlite; | 36 | using Mono.Data.SqliteClient; |
37 | 37 | ||
38 | namespace OpenSim.Data.SQLiteNG | 38 | namespace OpenSim.Data.SQLiteLegacy |
39 | { | 39 | { |
40 | /// <summary> | 40 | /// <summary> |
41 | /// A SQLite Interface for Avatar Data | 41 | /// A SQLite Interface for Avatar Data |
@@ -55,8 +55,8 @@ namespace OpenSim.Data.SQLiteNG | |||
55 | SqliteCommand cmd = new SqliteCommand(); | 55 | SqliteCommand cmd = new SqliteCommand(); |
56 | 56 | ||
57 | cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm); | 57 | cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm); |
58 | cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString()); | 58 | cmd.Parameters.Add(":PrincipalID", principalID.ToString()); |
59 | cmd.Parameters.AddWithValue(":Name", name); | 59 | cmd.Parameters.Add(":Name", name); |
60 | 60 | ||
61 | try | 61 | try |
62 | { | 62 | { |
@@ -67,7 +67,7 @@ namespace OpenSim.Data.SQLiteNG | |||
67 | } | 67 | } |
68 | finally | 68 | finally |
69 | { | 69 | { |
70 | //CloseCommand(cmd); | 70 | CloseCommand(cmd); |
71 | } | 71 | } |
72 | } | 72 | } |
73 | } | 73 | } |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteEstateData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs index 2e2d717..e135eaa 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs | |||
@@ -30,12 +30,12 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.Sqlite; | 33 | using Mono.Data.SqliteClient; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Region.Framework.Interfaces; | 36 | using OpenSim.Region.Framework.Interfaces; |
37 | 37 | ||
38 | namespace OpenSim.Data.SQLiteNG | 38 | namespace OpenSim.Data.SQLiteLegacy |
39 | { | 39 | { |
40 | public class SQLiteEstateStore : IEstateDataStore | 40 | public class SQLiteEstateStore : IEstateDataStore |
41 | { | 41 | { |
@@ -62,8 +62,8 @@ namespace OpenSim.Data.SQLiteNG | |||
62 | Migration m = new Migration(m_connection, assem, "EstateStore"); | 62 | Migration m = new Migration(m_connection, assem, "EstateStore"); |
63 | m.Update(); | 63 | m.Update(); |
64 | 64 | ||
65 | //m_connection.Close(); | 65 | m_connection.Close(); |
66 | // m_connection.Open(); | 66 | m_connection.Open(); |
67 | 67 | ||
68 | Type t = typeof(EstateSettings); | 68 | Type t = typeof(EstateSettings); |
69 | m_Fields = t.GetFields(BindingFlags.NonPublic | | 69 | m_Fields = t.GetFields(BindingFlags.NonPublic | |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.SQLiteNG | |||
87 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 87 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
88 | 88 | ||
89 | cmd.CommandText = sql; | 89 | cmd.CommandText = sql; |
90 | cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); | 90 | cmd.Parameters.Add(":RegionID", regionID.ToString()); |
91 | 91 | ||
92 | return DoLoad(cmd, regionID, create); | 92 | return DoLoad(cmd, regionID, create); |
93 | } | 93 | } |
@@ -143,13 +143,13 @@ namespace OpenSim.Data.SQLiteNG | |||
143 | if (m_FieldMap[name].GetValue(es) is bool) | 143 | if (m_FieldMap[name].GetValue(es) is bool) |
144 | { | 144 | { |
145 | if ((bool)m_FieldMap[name].GetValue(es)) | 145 | if ((bool)m_FieldMap[name].GetValue(es)) |
146 | cmd.Parameters.AddWithValue(":"+name, "1"); | 146 | cmd.Parameters.Add(":"+name, "1"); |
147 | else | 147 | else |
148 | cmd.Parameters.AddWithValue(":"+name, "0"); | 148 | cmd.Parameters.Add(":"+name, "0"); |
149 | } | 149 | } |
150 | else | 150 | else |
151 | { | 151 | { |
152 | cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString()); | 152 | cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString()); |
153 | } | 153 | } |
154 | } | 154 | } |
155 | 155 | ||
@@ -167,8 +167,8 @@ namespace OpenSim.Data.SQLiteNG | |||
167 | r.Close(); | 167 | r.Close(); |
168 | 168 | ||
169 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; | 169 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; |
170 | cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); | 170 | cmd.Parameters.Add(":RegionID", regionID.ToString()); |
171 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); | 171 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); |
172 | 172 | ||
173 | // This will throw on dupe key | 173 | // This will throw on dupe key |
174 | try | 174 | try |
@@ -211,13 +211,13 @@ namespace OpenSim.Data.SQLiteNG | |||
211 | if (m_FieldMap[name].GetValue(es) is bool) | 211 | if (m_FieldMap[name].GetValue(es) is bool) |
212 | { | 212 | { |
213 | if ((bool)m_FieldMap[name].GetValue(es)) | 213 | if ((bool)m_FieldMap[name].GetValue(es)) |
214 | cmd.Parameters.AddWithValue(":"+name, "1"); | 214 | cmd.Parameters.Add(":"+name, "1"); |
215 | else | 215 | else |
216 | cmd.Parameters.AddWithValue(":"+name, "0"); | 216 | cmd.Parameters.Add(":"+name, "0"); |
217 | } | 217 | } |
218 | else | 218 | else |
219 | { | 219 | { |
220 | cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString()); | 220 | cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString()); |
221 | } | 221 | } |
222 | } | 222 | } |
223 | 223 | ||
@@ -236,7 +236,7 @@ namespace OpenSim.Data.SQLiteNG | |||
236 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 236 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
237 | 237 | ||
238 | cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; | 238 | cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID"; |
239 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID); | 239 | cmd.Parameters.Add(":EstateID", es.EstateID); |
240 | 240 | ||
241 | IDataReader r = cmd.ExecuteReader(); | 241 | IDataReader r = cmd.ExecuteReader(); |
242 | 242 | ||
@@ -260,7 +260,7 @@ namespace OpenSim.Data.SQLiteNG | |||
260 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 260 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
261 | 261 | ||
262 | cmd.CommandText = "delete from estateban where EstateID = :EstateID"; | 262 | cmd.CommandText = "delete from estateban where EstateID = :EstateID"; |
263 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); | 263 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); |
264 | 264 | ||
265 | cmd.ExecuteNonQuery(); | 265 | cmd.ExecuteNonQuery(); |
266 | 266 | ||
@@ -270,8 +270,8 @@ namespace OpenSim.Data.SQLiteNG | |||
270 | 270 | ||
271 | foreach (EstateBan b in es.EstateBans) | 271 | foreach (EstateBan b in es.EstateBans) |
272 | { | 272 | { |
273 | cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString()); | 273 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); |
274 | cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString()); | 274 | cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString()); |
275 | 275 | ||
276 | cmd.ExecuteNonQuery(); | 276 | cmd.ExecuteNonQuery(); |
277 | cmd.Parameters.Clear(); | 277 | cmd.Parameters.Clear(); |
@@ -283,7 +283,7 @@ namespace OpenSim.Data.SQLiteNG | |||
283 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 283 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
284 | 284 | ||
285 | cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; | 285 | cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; |
286 | cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); | 286 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); |
287 | 287 | ||
288 | cmd.ExecuteNonQuery(); | 288 | cmd.ExecuteNonQuery(); |
289 | 289 | ||
@@ -293,8 +293,8 @@ namespace OpenSim.Data.SQLiteNG | |||
293 | 293 | ||
294 | foreach (UUID uuid in data) | 294 | foreach (UUID uuid in data) |
295 | { | 295 | { |
296 | cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString()); | 296 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); |
297 | cmd.Parameters.AddWithValue(":uuid", uuid.ToString()); | 297 | cmd.Parameters.Add(":uuid", uuid.ToString()); |
298 | 298 | ||
299 | cmd.ExecuteNonQuery(); | 299 | cmd.ExecuteNonQuery(); |
300 | cmd.Parameters.Clear(); | 300 | cmd.Parameters.Clear(); |
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLiteNG | |||
308 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 308 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
309 | 309 | ||
310 | cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; | 310 | cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID"; |
311 | cmd.Parameters.AddWithValue(":EstateID", EstateID); | 311 | cmd.Parameters.Add(":EstateID", EstateID); |
312 | 312 | ||
313 | IDataReader r = cmd.ExecuteReader(); | 313 | IDataReader r = cmd.ExecuteReader(); |
314 | 314 | ||
@@ -333,7 +333,7 @@ namespace OpenSim.Data.SQLiteNG | |||
333 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 333 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
334 | 334 | ||
335 | cmd.CommandText = sql; | 335 | cmd.CommandText = sql; |
336 | cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); | 336 | cmd.Parameters.Add(":EstateID", estateID.ToString()); |
337 | 337 | ||
338 | return DoLoad(cmd, UUID.Zero, false); | 338 | return DoLoad(cmd, UUID.Zero, false); |
339 | } | 339 | } |
@@ -347,7 +347,7 @@ namespace OpenSim.Data.SQLiteNG | |||
347 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 347 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
348 | 348 | ||
349 | cmd.CommandText = sql; | 349 | cmd.CommandText = sql; |
350 | cmd.Parameters.AddWithValue(":EstateName", search); | 350 | cmd.Parameters.Add(":EstateName", search); |
351 | 351 | ||
352 | IDataReader r = cmd.ExecuteReader(); | 352 | IDataReader r = cmd.ExecuteReader(); |
353 | 353 | ||
@@ -365,8 +365,8 @@ namespace OpenSim.Data.SQLiteNG | |||
365 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 365 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
366 | 366 | ||
367 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; | 367 | cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; |
368 | cmd.Parameters.AddWithValue(":RegionID", regionID.ToString()); | 368 | cmd.Parameters.Add(":RegionID", regionID.ToString()); |
369 | cmd.Parameters.AddWithValue(":EstateID", estateID.ToString()); | 369 | cmd.Parameters.Add(":EstateID", estateID.ToString()); |
370 | 370 | ||
371 | if (cmd.ExecuteNonQuery() == 0) | 371 | if (cmd.ExecuteNonQuery() == 0) |
372 | return false; | 372 | return false; |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteFramework.cs b/OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs index f0ddc59..606478e 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteFramework.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs | |||
@@ -31,9 +31,9 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.Sqlite; | 34 | using Mono.Data.SqliteClient; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLiteNG | 36 | namespace OpenSim.Data.SQLiteLegacy |
37 | { | 37 | { |
38 | /// <summary> | 38 | /// <summary> |
39 | /// A database interface class to a user profile storage system | 39 | /// A database interface class to a user profile storage system |
@@ -55,14 +55,11 @@ namespace OpenSim.Data.SQLiteNG | |||
55 | { | 55 | { |
56 | lock (connection) | 56 | lock (connection) |
57 | { | 57 | { |
58 | /* | ||
59 | SqliteConnection newConnection = | 58 | SqliteConnection newConnection = |
60 | (SqliteConnection)((ICloneable)connection).Clone(); | 59 | (SqliteConnection)((ICloneable)connection).Clone(); |
61 | newConnection.Open(); | 60 | newConnection.Open(); |
62 | 61 | ||
63 | cmd.Connection = newConnection; | 62 | cmd.Connection = newConnection; |
64 | */ | ||
65 | cmd.Connection = connection; | ||
66 | //Console.WriteLine("XXX " + cmd.CommandText); | 63 | //Console.WriteLine("XXX " + cmd.CommandText); |
67 | 64 | ||
68 | return cmd.ExecuteNonQuery(); | 65 | return cmd.ExecuteNonQuery(); |
@@ -73,12 +70,11 @@ namespace OpenSim.Data.SQLiteNG | |||
73 | { | 70 | { |
74 | lock (connection) | 71 | lock (connection) |
75 | { | 72 | { |
76 | //SqliteConnection newConnection = | 73 | SqliteConnection newConnection = |
77 | // (SqliteConnection)((ICloneable)connection).Clone(); | 74 | (SqliteConnection)((ICloneable)connection).Clone(); |
78 | //newConnection.Open(); | 75 | newConnection.Open(); |
79 | 76 | ||
80 | //cmd.Connection = newConnection; | 77 | cmd.Connection = newConnection; |
81 | cmd.Connection = connection; | ||
82 | //Console.WriteLine("XXX " + cmd.CommandText); | 78 | //Console.WriteLine("XXX " + cmd.CommandText); |
83 | 79 | ||
84 | return cmd.ExecuteReader(); | 80 | return cmd.ExecuteReader(); |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs index 702a1d8..d529d4d 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs | |||
@@ -31,9 +31,9 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.Sqlite; | 34 | using Mono.Data.SqliteClient; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLiteNG | 36 | namespace OpenSim.Data.SQLiteLegacy |
37 | { | 37 | { |
38 | public class SQLiteFriendsData : SQLiteGenericTableHandler<FriendsData>, IFriendsData | 38 | public class SQLiteFriendsData : SQLiteGenericTableHandler<FriendsData>, IFriendsData |
39 | { | 39 | { |
@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLiteNG | |||
47 | SqliteCommand cmd = new SqliteCommand(); | 47 | SqliteCommand cmd = new SqliteCommand(); |
48 | 48 | ||
49 | cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm); | 49 | cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm); |
50 | cmd.Parameters.AddWithValue(":PrincipalID", userID.ToString()); | 50 | cmd.Parameters.Add(":PrincipalID", userID.ToString()); |
51 | 51 | ||
52 | return DoQuery(cmd); | 52 | return DoQuery(cmd); |
53 | 53 | ||
@@ -58,8 +58,8 @@ namespace OpenSim.Data.SQLiteNG | |||
58 | SqliteCommand cmd = new SqliteCommand(); | 58 | SqliteCommand cmd = new SqliteCommand(); |
59 | 59 | ||
60 | cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm); | 60 | cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm); |
61 | cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString()); | 61 | cmd.Parameters.Add(":PrincipalID", principalID.ToString()); |
62 | cmd.Parameters.AddWithValue(":Friend", friend); | 62 | cmd.Parameters.Add(":Friend", friend); |
63 | 63 | ||
64 | ExecuteNonQuery(cmd, cmd.Connection); | 64 | ExecuteNonQuery(cmd, cmd.Connection); |
65 | 65 | ||
diff --git a/OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs index 632c5bf..1c1fe8c 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs | |||
@@ -30,12 +30,12 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.Sqlite; | 33 | using Mono.Data.SqliteClient; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Region.Framework.Interfaces; | 36 | using OpenSim.Region.Framework.Interfaces; |
37 | 37 | ||
38 | namespace OpenSim.Data.SQLiteNG | 38 | namespace OpenSim.Data.SQLiteLegacy |
39 | { | 39 | { |
40 | public class SQLiteGenericTableHandler<T> : SQLiteFramework where T: class, new() | 40 | public class SQLiteGenericTableHandler<T> : SQLiteFramework where T: class, new() |
41 | { | 41 | { |
@@ -59,21 +59,19 @@ namespace OpenSim.Data.SQLiteNG | |||
59 | if (!m_initialized) | 59 | if (!m_initialized) |
60 | { | 60 | { |
61 | m_Connection = new SqliteConnection(connectionString); | 61 | m_Connection = new SqliteConnection(connectionString); |
62 | Console.WriteLine(string.Format("OPENING CONNECTION FOR {0} USING {1}", storeName, connectionString)); | ||
63 | m_Connection.Open(); | 62 | m_Connection.Open(); |
64 | 63 | ||
65 | if (storeName != String.Empty) | 64 | if (storeName != String.Empty) |
66 | { | 65 | { |
67 | Assembly assem = GetType().Assembly; | 66 | Assembly assem = GetType().Assembly; |
68 | //SqliteConnection newConnection = | 67 | SqliteConnection newConnection = |
69 | // (SqliteConnection)((ICloneable)m_Connection).Clone(); | 68 | (SqliteConnection)((ICloneable)m_Connection).Clone(); |
70 | //newConnection.Open(); | 69 | newConnection.Open(); |
71 | 70 | ||
72 | //Migration m = new Migration(newConnection, assem, storeName); | 71 | Migration m = new Migration(newConnection, assem, storeName); |
73 | Migration m = new Migration(m_Connection, assem, storeName); | ||
74 | m.Update(); | 72 | m.Update(); |
75 | //newConnection.Close(); | 73 | newConnection.Close(); |
76 | //newConnection.Dispose(); | 74 | newConnection.Dispose(); |
77 | } | 75 | } |
78 | 76 | ||
79 | m_initialized = true; | 77 | m_initialized = true; |
@@ -199,7 +197,7 @@ namespace OpenSim.Data.SQLiteNG | |||
199 | result.Add(row); | 197 | result.Add(row); |
200 | } | 198 | } |
201 | 199 | ||
202 | //CloseCommand(cmd); | 200 | CloseCommand(cmd); |
203 | 201 | ||
204 | return result.ToArray(); | 202 | return result.ToArray(); |
205 | } | 203 | } |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs b/OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs index 9207ca3..726703b 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs | |||
@@ -30,11 +30,11 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using log4net; | 32 | using log4net; |
33 | using Mono.Data.Sqlite; | 33 | using Mono.Data.SqliteClient; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | 36 | ||
37 | namespace OpenSim.Data.SQLiteNG | 37 | namespace OpenSim.Data.SQLiteLegacy |
38 | { | 38 | { |
39 | /// <summary> | 39 | /// <summary> |
40 | /// An Inventory Interface to the SQLite database | 40 | /// An Inventory Interface to the SQLite database |
@@ -98,13 +98,11 @@ namespace OpenSim.Data.SQLiteNG | |||
98 | ds.Tables.Add(createInventoryFoldersTable()); | 98 | ds.Tables.Add(createInventoryFoldersTable()); |
99 | invFoldersDa.Fill(ds.Tables["inventoryfolders"]); | 99 | invFoldersDa.Fill(ds.Tables["inventoryfolders"]); |
100 | setupFoldersCommands(invFoldersDa, conn); | 100 | setupFoldersCommands(invFoldersDa, conn); |
101 | CreateDataSetMapping(invFoldersDa, "inventoryfolders"); | ||
102 | m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions"); | 101 | m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions"); |
103 | 102 | ||
104 | ds.Tables.Add(createInventoryItemsTable()); | 103 | ds.Tables.Add(createInventoryItemsTable()); |
105 | invItemsDa.Fill(ds.Tables["inventoryitems"]); | 104 | invItemsDa.Fill(ds.Tables["inventoryitems"]); |
106 | setupItemsCommands(invItemsDa, conn); | 105 | setupItemsCommands(invItemsDa, conn); |
107 | CreateDataSetMapping(invItemsDa, "inventoryitems"); | ||
108 | m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions"); | 106 | m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions"); |
109 | 107 | ||
110 | ds.AcceptChanges(); | 108 | ds.AcceptChanges(); |
@@ -730,15 +728,6 @@ namespace OpenSim.Data.SQLiteNG | |||
730 | * | 728 | * |
731 | **********************************************************************/ | 729 | **********************************************************************/ |
732 | 730 | ||
733 | protected void CreateDataSetMapping(IDataAdapter da, string tableName) | ||
734 | { | ||
735 | ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName); | ||
736 | foreach (DataColumn col in ds.Tables[tableName].Columns) | ||
737 | { | ||
738 | dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName); | ||
739 | } | ||
740 | } | ||
741 | |||
742 | /// <summary> | 731 | /// <summary> |
743 | /// Create the "inventoryitems" table | 732 | /// Create the "inventoryitems" table |
744 | /// </summary> | 733 | /// </summary> |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteRegionData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs index 289d626..eb78037 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteRegionData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs | |||
@@ -32,13 +32,13 @@ using System.Drawing; | |||
32 | using System.IO; | 32 | using System.IO; |
33 | using System.Reflection; | 33 | using System.Reflection; |
34 | using log4net; | 34 | using log4net; |
35 | using Mono.Data.Sqlite; | 35 | using Mono.Data.SqliteClient; |
36 | using OpenMetaverse; | 36 | using OpenMetaverse; |
37 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
38 | using OpenSim.Region.Framework.Interfaces; | 38 | using OpenSim.Region.Framework.Interfaces; |
39 | using OpenSim.Region.Framework.Scenes; | 39 | using OpenSim.Region.Framework.Scenes; |
40 | 40 | ||
41 | namespace OpenSim.Data.SQLiteNG | 41 | namespace OpenSim.Data.SQLiteLegacy |
42 | { | 42 | { |
43 | /// <summary> | 43 | /// <summary> |
44 | /// A RegionData Interface to the SQLite database | 44 | /// A RegionData Interface to the SQLite database |
@@ -87,142 +87,119 @@ namespace OpenSim.Data.SQLiteNG | |||
87 | /// <param name="connectionString">the connection string</param> | 87 | /// <param name="connectionString">the connection string</param> |
88 | public void Initialise(string connectionString) | 88 | public void Initialise(string connectionString) |
89 | { | 89 | { |
90 | try | 90 | m_connectionString = connectionString; |
91 | { | ||
92 | m_connectionString = connectionString; | ||
93 | 91 | ||
94 | ds = new DataSet("Region"); | 92 | ds = new DataSet(); |
95 | 93 | ||
96 | m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString); | 94 | m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString); |
97 | m_conn = new SqliteConnection(m_connectionString); | 95 | m_conn = new SqliteConnection(m_connectionString); |
98 | m_conn.Open(); | 96 | m_conn.Open(); |
99 | 97 | ||
100 | SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn); | ||
101 | primDa = new SqliteDataAdapter(primSelectCmd); | ||
102 | 98 | ||
103 | SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn); | ||
104 | shapeDa = new SqliteDataAdapter(shapeSelectCmd); | ||
105 | // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa); | ||
106 | 99 | ||
107 | SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn); | 100 | SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn); |
108 | itemsDa = new SqliteDataAdapter(itemsSelectCmd); | 101 | primDa = new SqliteDataAdapter(primSelectCmd); |
102 | // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa); | ||
109 | 103 | ||
110 | SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn); | 104 | SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn); |
111 | terrainDa = new SqliteDataAdapter(terrainSelectCmd); | 105 | shapeDa = new SqliteDataAdapter(shapeSelectCmd); |
106 | // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa); | ||
112 | 107 | ||
113 | SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn); | 108 | SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn); |
114 | landDa = new SqliteDataAdapter(landSelectCmd); | 109 | itemsDa = new SqliteDataAdapter(itemsSelectCmd); |
115 | 110 | ||
116 | SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn); | 111 | SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn); |
117 | landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd); | 112 | terrainDa = new SqliteDataAdapter(terrainSelectCmd); |
118 | 113 | ||
119 | SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); | 114 | SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn); |
120 | regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); | 115 | landDa = new SqliteDataAdapter(landSelectCmd); |
121 | // This actually does the roll forward assembly stuff | ||
122 | Assembly assem = GetType().Assembly; | ||
123 | Migration m = new Migration(m_conn, assem, "RegionStore"); | ||
124 | m.Update(); | ||
125 | 116 | ||
126 | lock (ds) | 117 | SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn); |
127 | { | 118 | landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd); |
128 | ds.Tables.Add(createPrimTable()); | ||
129 | setupPrimCommands(primDa, m_conn); | ||
130 | 119 | ||
131 | ds.Tables.Add(createShapeTable()); | 120 | SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); |
132 | setupShapeCommands(shapeDa, m_conn); | 121 | regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); |
122 | // This actually does the roll forward assembly stuff | ||
123 | Assembly assem = GetType().Assembly; | ||
124 | Migration m = new Migration(m_conn, assem, "RegionStore"); | ||
125 | m.Update(); | ||
133 | 126 | ||
134 | ds.Tables.Add(createItemsTable()); | 127 | lock (ds) |
135 | setupItemsCommands(itemsDa, m_conn); | 128 | { |
129 | ds.Tables.Add(createPrimTable()); | ||
130 | setupPrimCommands(primDa, m_conn); | ||
131 | primDa.Fill(ds.Tables["prims"]); | ||
136 | 132 | ||
137 | ds.Tables.Add(createTerrainTable()); | 133 | ds.Tables.Add(createShapeTable()); |
138 | setupTerrainCommands(terrainDa, m_conn); | 134 | setupShapeCommands(shapeDa, m_conn); |
139 | 135 | ||
140 | ds.Tables.Add(createLandTable()); | 136 | ds.Tables.Add(createItemsTable()); |
141 | setupLandCommands(landDa, m_conn); | 137 | setupItemsCommands(itemsDa, m_conn); |
138 | itemsDa.Fill(ds.Tables["primitems"]); | ||
142 | 139 | ||
143 | ds.Tables.Add(createLandAccessListTable()); | 140 | ds.Tables.Add(createTerrainTable()); |
144 | setupLandAccessCommands(landAccessListDa, m_conn); | 141 | setupTerrainCommands(terrainDa, m_conn); |
145 | 142 | ||
146 | ds.Tables.Add(createRegionSettingsTable()); | 143 | ds.Tables.Add(createLandTable()); |
147 | setupRegionSettingsCommands(regionSettingsDa, m_conn); | 144 | setupLandCommands(landDa, m_conn); |
148 | 145 | ||
149 | // WORKAROUND: This is a work around for sqlite on | 146 | ds.Tables.Add(createLandAccessListTable()); |
150 | // windows, which gets really unhappy with blob columns | 147 | setupLandAccessCommands(landAccessListDa, m_conn); |
151 | // that have no sample data in them. At some point we | ||
152 | // need to actually find a proper way to handle this. | ||
153 | try | ||
154 | { | ||
155 | primDa.Fill(ds.Tables["prims"]); | ||
156 | } | ||
157 | catch (Exception) | ||
158 | { | ||
159 | m_log.Info("[REGION DB]: Caught fill error on prims table"); | ||
160 | } | ||
161 | 148 | ||
162 | try | 149 | ds.Tables.Add(createRegionSettingsTable()); |
163 | { | 150 | |
164 | shapeDa.Fill(ds.Tables["primshapes"]); | 151 | setupRegionSettingsCommands(regionSettingsDa, m_conn); |
165 | } | ||
166 | catch (Exception) | ||
167 | { | ||
168 | m_log.Info("[REGION DB]: Caught fill error on primshapes table"); | ||
169 | } | ||
170 | 152 | ||
171 | try | 153 | // WORKAROUND: This is a work around for sqlite on |
172 | { | 154 | // windows, which gets really unhappy with blob columns |
173 | terrainDa.Fill(ds.Tables["terrain"]); | 155 | // that have no sample data in them. At some point we |
174 | } | 156 | // need to actually find a proper way to handle this. |
175 | catch (Exception) | 157 | try |
176 | { | 158 | { |
177 | m_log.Info("[REGION DB]: Caught fill error on terrain table"); | 159 | shapeDa.Fill(ds.Tables["primshapes"]); |
178 | } | 160 | } |
161 | catch (Exception) | ||
162 | { | ||
163 | m_log.Info("[REGION DB]: Caught fill error on primshapes table"); | ||
164 | } | ||
179 | 165 | ||
180 | try | 166 | try |
181 | { | 167 | { |
182 | landDa.Fill(ds.Tables["land"]); | 168 | terrainDa.Fill(ds.Tables["terrain"]); |
183 | } | 169 | } |
184 | catch (Exception) | 170 | catch (Exception) |
185 | { | 171 | { |
186 | m_log.Info("[REGION DB]: Caught fill error on land table"); | 172 | m_log.Info("[REGION DB]: Caught fill error on terrain table"); |
187 | } | 173 | } |
188 | 174 | ||
189 | try | 175 | try |
190 | { | 176 | { |
191 | landAccessListDa.Fill(ds.Tables["landaccesslist"]); | 177 | landDa.Fill(ds.Tables["land"]); |
192 | } | 178 | } |
193 | catch (Exception) | 179 | catch (Exception) |
194 | { | 180 | { |
195 | m_log.Info("[REGION DB]: Caught fill error on landaccesslist table"); | 181 | m_log.Info("[REGION DB]: Caught fill error on land table"); |
196 | } | 182 | } |
197 | 183 | ||
198 | try | 184 | try |
199 | { | 185 | { |
200 | regionSettingsDa.Fill(ds.Tables["regionsettings"]); | 186 | landAccessListDa.Fill(ds.Tables["landaccesslist"]); |
201 | } | 187 | } |
202 | catch (Exception) | 188 | catch (Exception) |
203 | { | 189 | { |
204 | m_log.Info("[REGION DB]: Caught fill error on regionsettings table"); | 190 | m_log.Info("[REGION DB]: Caught fill error on landaccesslist table"); |
205 | } | 191 | } |
206 | 192 | ||
207 | // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values! | 193 | try |
208 | // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409 | 194 | { |
209 | // Possibly because we manually set up our own DataTables before connecting to the database | 195 | regionSettingsDa.Fill(ds.Tables["regionsettings"]); |
210 | CreateDataSetMapping(primDa, "prims"); | ||
211 | CreateDataSetMapping(shapeDa, "primshapes"); | ||
212 | CreateDataSetMapping(itemsDa, "primitems"); | ||
213 | CreateDataSetMapping(terrainDa, "terrain"); | ||
214 | CreateDataSetMapping(landDa, "land"); | ||
215 | CreateDataSetMapping(landAccessListDa, "landaccesslist"); | ||
216 | CreateDataSetMapping(regionSettingsDa, "regionsettings"); | ||
217 | } | 196 | } |
197 | catch (Exception) | ||
198 | { | ||
199 | m_log.Info("[REGION DB]: Caught fill error on regionsettings table"); | ||
200 | } | ||
201 | return; | ||
218 | } | 202 | } |
219 | catch (Exception e) | ||
220 | { | ||
221 | m_log.Error(e); | ||
222 | Environment.Exit(23); | ||
223 | } | ||
224 | |||
225 | return; | ||
226 | } | 203 | } |
227 | 204 | ||
228 | public void Dispose() | 205 | public void Dispose() |
@@ -626,7 +603,7 @@ namespace OpenSim.Data.SQLiteNG | |||
626 | } | 603 | } |
627 | } | 604 | } |
628 | } | 605 | } |
629 | rev = Convert.ToInt32(row["Revision"]); | 606 | rev = (int) row["Revision"]; |
630 | } | 607 | } |
631 | else | 608 | else |
632 | { | 609 | { |
@@ -778,7 +755,6 @@ namespace OpenSim.Data.SQLiteNG | |||
778 | /// </summary> | 755 | /// </summary> |
779 | public void Commit() | 756 | public void Commit() |
780 | { | 757 | { |
781 | m_log.Debug("[SQLITE]: Starting commit"); | ||
782 | lock (ds) | 758 | lock (ds) |
783 | { | 759 | { |
784 | primDa.Update(ds, "prims"); | 760 | primDa.Update(ds, "prims"); |
@@ -793,11 +769,18 @@ namespace OpenSim.Data.SQLiteNG | |||
793 | { | 769 | { |
794 | regionSettingsDa.Update(ds, "regionsettings"); | 770 | regionSettingsDa.Update(ds, "regionsettings"); |
795 | } | 771 | } |
796 | catch (SqliteException SqlEx) | 772 | catch (SqliteExecutionException SqlEx) |
797 | { | 773 | { |
798 | throw new Exception( | 774 | if (SqlEx.Message.Contains("logic error")) |
799 | "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!", | 775 | { |
800 | SqlEx); | 776 | throw new Exception( |
777 | "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!", | ||
778 | SqlEx); | ||
779 | } | ||
780 | else | ||
781 | { | ||
782 | throw SqlEx; | ||
783 | } | ||
801 | } | 784 | } |
802 | ds.AcceptChanges(); | 785 | ds.AcceptChanges(); |
803 | } | 786 | } |
@@ -819,15 +802,6 @@ namespace OpenSim.Data.SQLiteNG | |||
819 | * | 802 | * |
820 | **********************************************************************/ | 803 | **********************************************************************/ |
821 | 804 | ||
822 | protected void CreateDataSetMapping(IDataAdapter da, string tableName) | ||
823 | { | ||
824 | ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName); | ||
825 | foreach (DataColumn col in ds.Tables[tableName].Columns) | ||
826 | { | ||
827 | dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName); | ||
828 | } | ||
829 | } | ||
830 | |||
831 | /// <summary> | 805 | /// <summary> |
832 | /// | 806 | /// |
833 | /// </summary> | 807 | /// </summary> |
@@ -1990,7 +1964,6 @@ namespace OpenSim.Data.SQLiteNG | |||
1990 | sql += ") values (:"; | 1964 | sql += ") values (:"; |
1991 | sql += String.Join(", :", cols); | 1965 | sql += String.Join(", :", cols); |
1992 | sql += ")"; | 1966 | sql += ")"; |
1993 | m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql); | ||
1994 | SqliteCommand cmd = new SqliteCommand(sql); | 1967 | SqliteCommand cmd = new SqliteCommand(sql); |
1995 | 1968 | ||
1996 | // this provides the binding for all our parameters, so | 1969 | // this provides the binding for all our parameters, so |
@@ -2286,36 +2259,6 @@ namespace OpenSim.Data.SQLiteNG | |||
2286 | return DbType.String; | 2259 | return DbType.String; |
2287 | } | 2260 | } |
2288 | } | 2261 | } |
2289 | |||
2290 | static void PrintDataSet(DataSet ds) | ||
2291 | { | ||
2292 | // Print out any name and extended properties. | ||
2293 | Console.WriteLine("DataSet is named: {0}", ds.DataSetName); | ||
2294 | foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties) | ||
2295 | { | ||
2296 | Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value); | ||
2297 | } | ||
2298 | Console.WriteLine(); | ||
2299 | foreach (DataTable dt in ds.Tables) | ||
2300 | { | ||
2301 | Console.WriteLine("=> {0} Table:", dt.TableName); | ||
2302 | // Print out the column names. | ||
2303 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | ||
2304 | { | ||
2305 | Console.Write(dt.Columns[curCol].ColumnName + "\t"); | ||
2306 | } | ||
2307 | Console.WriteLine("\n----------------------------------"); | ||
2308 | // Print the DataTable. | ||
2309 | for (int curRow = 0; curRow < dt.Rows.Count; curRow++) | ||
2310 | { | ||
2311 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | ||
2312 | { | ||
2313 | Console.Write(dt.Rows[curRow][curCol].ToString() + "\t"); | ||
2314 | } | ||
2315 | Console.WriteLine(); | ||
2316 | } | ||
2317 | } | ||
2318 | } | ||
2319 | 2262 | ||
2320 | } | 2263 | } |
2321 | } | 2264 | } |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs index f77159c..27553c6 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs | |||
@@ -31,9 +31,9 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using Mono.Data.Sqlite; | 34 | using Mono.Data.SqliteClient; |
35 | 35 | ||
36 | namespace OpenSim.Data.SQLiteNG | 36 | namespace OpenSim.Data.SQLiteLegacy |
37 | { | 37 | { |
38 | public class SQLiteUserAccountData : SQLiteGenericTableHandler<UserAccountData>, IUserAccountData | 38 | public class SQLiteUserAccountData : SQLiteGenericTableHandler<UserAccountData>, IUserAccountData |
39 | { | 39 | { |
@@ -66,7 +66,7 @@ namespace OpenSim.Data.SQLiteNG | |||
66 | 66 | ||
67 | if (words.Length == 1) | 67 | if (words.Length == 1) |
68 | { | 68 | { |
69 | cmd.CommandText = String.Format("select * from {0} where ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')", | 69 | cmd.CommandText = String.Format("select * from {0} where (ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')", |
70 | m_Realm, scopeID.ToString(), words[0]); | 70 | m_Realm, scopeID.ToString(), words[0]); |
71 | } | 71 | } |
72 | else | 72 | else |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteUtils.cs b/OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs index 82a2e37..095a262 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteUtils.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs | |||
@@ -27,9 +27,9 @@ | |||
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Data; | 29 | using System.Data; |
30 | using Mono.Data.Sqlite; | 30 | using Mono.Data.SqliteClient; |
31 | 31 | ||
32 | namespace OpenSim.Data.SQLiteNG | 32 | namespace OpenSim.Data.SQLiteLegacy |
33 | { | 33 | { |
34 | /// <summary> | 34 | /// <summary> |
35 | /// A base class for methods needed by all SQLite database classes | 35 | /// A base class for methods needed by all SQLite database classes |
diff --git a/OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs index a0c17f8..5422cbf 100644 --- a/OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs | |||
@@ -29,12 +29,12 @@ using System; | |||
29 | using System.Data; | 29 | using System.Data; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using Mono.Data.Sqlite; | 32 | using Mono.Data.SqliteClient; |
33 | using log4net; | 33 | using log4net; |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | 36 | ||
37 | namespace OpenSim.Data.SQLiteNG | 37 | namespace OpenSim.Data.SQLiteLegacy |
38 | { | 38 | { |
39 | /// <summary> | 39 | /// <summary> |
40 | /// A MySQL Interface for the Asset Server | 40 | /// A MySQL Interface for the Asset Server |
@@ -147,7 +147,7 @@ namespace OpenSim.Data.SQLiteNG | |||
147 | } | 147 | } |
148 | 148 | ||
149 | reader.Close(); | 149 | reader.Close(); |
150 | //CloseCommand(cmd); | 150 | CloseCommand(cmd); |
151 | 151 | ||
152 | return perms; | 152 | return perms; |
153 | } | 153 | } |
diff --git a/OpenSim/Data/Tests/DataTestUtil.cs b/OpenSim/Data/Tests/DataTestUtil.cs index d211ab3..5393529 100644 --- a/OpenSim/Data/Tests/DataTestUtil.cs +++ b/OpenSim/Data/Tests/DataTestUtil.cs | |||
@@ -39,7 +39,8 @@ namespace OpenSim.Data.Tests | |||
39 | public class DataTestUtil | 39 | public class DataTestUtil |
40 | { | 40 | { |
41 | public const uint UNSIGNED_INTEGER_MIN = uint.MinValue; | 41 | public const uint UNSIGNED_INTEGER_MIN = uint.MinValue; |
42 | public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue; | 42 | //public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue; |
43 | public const uint UNSIGNED_INTEGER_MAX = INTEGER_MAX; | ||
43 | 44 | ||
44 | public const int INTEGER_MIN = int.MinValue + 1; // Postgresql requires +1 to .NET int.MinValue | 45 | public const int INTEGER_MIN = int.MinValue + 1; // Postgresql requires +1 to .NET int.MinValue |
45 | public const int INTEGER_MAX = int.MaxValue; | 46 | public const int INTEGER_MAX = int.MaxValue; |
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index 23d5b3c..febd4ca 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | |||
@@ -365,6 +365,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
365 | List<UUID> GetOnlineFriends(UUID userID) | 365 | List<UUID> GetOnlineFriends(UUID userID) |
366 | { | 366 | { |
367 | List<string> friendList = new List<string>(); | 367 | List<string> friendList = new List<string>(); |
368 | List<UUID> online = new List<UUID>(); | ||
368 | 369 | ||
369 | foreach (FriendInfo fi in m_Friends[userID].Friends) | 370 | foreach (FriendInfo fi in m_Friends[userID].Friends) |
370 | { | 371 | { |
@@ -372,9 +373,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
372 | friendList.Add(fi.Friend); | 373 | friendList.Add(fi.Friend); |
373 | } | 374 | } |
374 | 375 | ||
375 | PresenceInfo[] presence = PresenceService.GetAgents(friendList.ToArray()); | 376 | if (friendList.Count == 0) |
377 | // no friends whatsoever | ||
378 | return online; | ||
376 | 379 | ||
377 | List<UUID> online = new List<UUID>(); | 380 | PresenceInfo[] presence = PresenceService.GetAgents(friendList.ToArray()); |
378 | 381 | ||
379 | foreach (PresenceInfo pi in presence) | 382 | foreach (PresenceInfo pi in presence) |
380 | { | 383 | { |
diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml index 0a5ff3f..c738296 100644 --- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml +++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml | |||
@@ -47,6 +47,7 @@ | |||
47 | <RegionModule id="RemoteInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteInventoryServicesConnector" /> | 47 | <RegionModule id="RemoteInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteInventoryServicesConnector" /> |
48 | <RegionModule id="RemoteXInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteXInventoryServicesConnector" /> | 48 | <RegionModule id="RemoteXInventoryServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.RemoteXInventoryServicesConnector" /> |
49 | <RegionModule id="HGInventoryBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.HGInventoryBroker" /> | 49 | <RegionModule id="HGInventoryBroker" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.HGInventoryBroker" /> |
50 | <RegionModule id="HGInventoryBroker2" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory.HGInventoryBroker2" /> | ||
50 | <RegionModule id="LocalNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.LocalNeighbourServicesConnector" /> | 51 | <RegionModule id="LocalNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.LocalNeighbourServicesConnector" /> |
51 | <RegionModule id="RemoteNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.RemoteNeighbourServicesConnector" /> | 52 | <RegionModule id="RemoteNeighbourServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour.RemoteNeighbourServicesConnector" /> |
52 | <RegionModule id="LocalLandServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Land.LocalLandServicesConnector" /> | 53 | <RegionModule id="LocalLandServicesConnector" type="OpenSim.Region.CoreModules.ServiceConnectorsOut.Land.LocalLandServicesConnector" /> |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs index 3509161..fc3393f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs | |||
@@ -41,27 +41,22 @@ using OpenMetaverse; | |||
41 | 41 | ||
42 | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | 42 | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory |
43 | { | 43 | { |
44 | public class HGInventoryBroker2 : INonSharedRegionModule, IInventoryService | 44 | public class HGInventoryBroker2 : ISharedRegionModule, IInventoryService |
45 | { | 45 | { |
46 | private static readonly ILog m_log = | 46 | private static readonly ILog m_log = |
47 | LogManager.GetLogger( | 47 | LogManager.GetLogger( |
48 | MethodBase.GetCurrentMethod().DeclaringType); | 48 | MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | private static bool m_Initialized = false; | ||
51 | private static bool m_Enabled = false; | 50 | private static bool m_Enabled = false; |
52 | 51 | ||
53 | private static IInventoryService m_LocalGridInventoryService; | 52 | private static IInventoryService m_LocalGridInventoryService; |
54 | private static ISessionAuthInventoryService m_HGService; // obsolete | ||
55 | private Dictionary<string, IInventoryService> m_connectors = new Dictionary<string, IInventoryService>(); | 53 | private Dictionary<string, IInventoryService> m_connectors = new Dictionary<string, IInventoryService>(); |
56 | 54 | ||
57 | // A cache of userIDs --> ServiceURLs, for HGBroker only | 55 | // A cache of userIDs --> ServiceURLs, for HGBroker only |
58 | protected Dictionary<UUID, string> m_InventoryURLs; | 56 | protected Dictionary<UUID, string> m_InventoryURLs = new Dictionary<UUID,string>(); |
59 | 57 | ||
60 | private Scene m_Scene; | ||
61 | private List<Scene> m_Scenes = new List<Scene>(); | 58 | private List<Scene> m_Scenes = new List<Scene>(); |
62 | 59 | ||
63 | private IUserAccountService m_UserAccountService; | ||
64 | |||
65 | public Type ReplaceableInterface | 60 | public Type ReplaceableInterface |
66 | { | 61 | { |
67 | get { return null; } | 62 | get { return null; } |
@@ -74,65 +69,45 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
74 | 69 | ||
75 | public void Initialise(IConfigSource source) | 70 | public void Initialise(IConfigSource source) |
76 | { | 71 | { |
77 | if (!m_Initialized) | 72 | IConfig moduleConfig = source.Configs["Modules"]; |
73 | if (moduleConfig != null) | ||
78 | { | 74 | { |
79 | IConfig moduleConfig = source.Configs["Modules"]; | 75 | string name = moduleConfig.GetString("InventoryServices", ""); |
80 | if (moduleConfig != null) | 76 | if (name == Name) |
81 | { | 77 | { |
82 | string name = moduleConfig.GetString("InventoryServices", ""); | 78 | IConfig inventoryConfig = source.Configs["InventoryService"]; |
83 | if (name == Name) | 79 | if (inventoryConfig == null) |
84 | { | 80 | { |
85 | IConfig inventoryConfig = source.Configs["InventoryService"]; | 81 | m_log.Error("[HG INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini"); |
86 | if (inventoryConfig == null) | 82 | return; |
87 | { | 83 | } |
88 | m_log.Error("[HG INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini"); | ||
89 | return; | ||
90 | } | ||
91 | |||
92 | string localDll = inventoryConfig.GetString("LocalGridInventoryService", | ||
93 | String.Empty); | ||
94 | string HGDll = inventoryConfig.GetString("HypergridInventoryService", | ||
95 | String.Empty); | ||
96 | |||
97 | if (localDll == String.Empty) | ||
98 | { | ||
99 | m_log.Error("[HG INVENTORY CONNECTOR]: No LocalGridInventoryService named in section InventoryService"); | ||
100 | //return; | ||
101 | throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's"); | ||
102 | } | ||
103 | |||
104 | if (HGDll == String.Empty) | ||
105 | { | ||
106 | m_log.Error("[HG INVENTORY CONNECTOR]: No HypergridInventoryService named in section InventoryService"); | ||
107 | //return; | ||
108 | throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's"); | ||
109 | } | ||
110 | 84 | ||
111 | Object[] args = new Object[] { source }; | 85 | string localDll = inventoryConfig.GetString("LocalGridInventoryService", |
112 | m_LocalGridInventoryService = | 86 | String.Empty); |
113 | ServerUtils.LoadPlugin<IInventoryService>(localDll, | 87 | //string HGDll = inventoryConfig.GetString("HypergridInventoryService", |
114 | args); | 88 | // String.Empty); |
115 | 89 | ||
116 | m_HGService = | 90 | if (localDll == String.Empty) |
117 | ServerUtils.LoadPlugin<ISessionAuthInventoryService>(HGDll, | 91 | { |
118 | args); | 92 | m_log.Error("[HG INVENTORY CONNECTOR]: No LocalGridInventoryService named in section InventoryService"); |
93 | //return; | ||
94 | throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's"); | ||
95 | } | ||
119 | 96 | ||
120 | if (m_LocalGridInventoryService == null) | 97 | Object[] args = new Object[] { source }; |
121 | { | 98 | m_LocalGridInventoryService = |
122 | m_log.Error("[HG INVENTORY CONNECTOR]: Can't load local inventory service"); | 99 | ServerUtils.LoadPlugin<IInventoryService>(localDll, |
123 | return; | 100 | args); |
124 | } | ||
125 | if (m_HGService == null) | ||
126 | { | ||
127 | m_log.Error("[HG INVENTORY CONNECTOR]: Can't load hypergrid inventory service"); | ||
128 | return; | ||
129 | } | ||
130 | 101 | ||
131 | m_Enabled = true; | 102 | if (m_LocalGridInventoryService == null) |
132 | m_log.Info("[HG INVENTORY CONNECTOR]: HG inventory broker enabled"); | 103 | { |
104 | m_log.Error("[HG INVENTORY CONNECTOR]: Can't load local inventory service"); | ||
105 | return; | ||
133 | } | 106 | } |
107 | |||
108 | m_Enabled = true; | ||
109 | m_log.InfoFormat("[HG INVENTORY CONNECTOR]: HG inventory broker enabled with inner connector of type {0}", m_LocalGridInventoryService.GetType()); | ||
134 | } | 110 | } |
135 | m_Initialized = true; | ||
136 | } | 111 | } |
137 | } | 112 | } |
138 | 113 | ||
@@ -149,13 +124,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
149 | if (!m_Enabled) | 124 | if (!m_Enabled) |
150 | return; | 125 | return; |
151 | 126 | ||
152 | m_Scene = scene; | ||
153 | m_Scenes.Add(scene); | 127 | m_Scenes.Add(scene); |
154 | m_UserAccountService = m_Scene.UserAccountService; | ||
155 | 128 | ||
156 | scene.RegisterModuleInterface<IInventoryService>(this); | 129 | scene.RegisterModuleInterface<IInventoryService>(this); |
157 | 130 | ||
158 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; | ||
159 | scene.EventManager.OnClientClosed += OnClientClosed; | 131 | scene.EventManager.OnClientClosed += OnClientClosed; |
160 | 132 | ||
161 | } | 133 | } |
@@ -177,13 +149,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
177 | 149 | ||
178 | } | 150 | } |
179 | 151 | ||
180 | #region Cache | 152 | #region URL Cache |
181 | |||
182 | void OnMakeRootAgent(ScenePresence presence) | ||
183 | { | ||
184 | if (!m_InventoryURLs.ContainsKey(presence.UUID)) | ||
185 | CacheInventoryServiceURL(presence.Scene, presence.UUID); | ||
186 | } | ||
187 | 153 | ||
188 | void OnClientClosed(UUID clientID, Scene scene) | 154 | void OnClientClosed(UUID clientID, Scene scene) |
189 | { | 155 | { |
@@ -200,10 +166,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
200 | return; | 166 | return; |
201 | } | 167 | } |
202 | } | 168 | } |
203 | |||
204 | m_log.DebugFormat( | ||
205 | "[INVENTORY CACHE]: OnClientClosed in {0}, user {1} out of sim. Dropping inventory URL", | ||
206 | scene.RegionInfo.RegionName, clientID); | ||
207 | DropInventoryServiceURL(clientID); | 169 | DropInventoryServiceURL(clientID); |
208 | } | 170 | } |
209 | } | 171 | } |
@@ -213,35 +175,47 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
213 | /// and sticks it in the cache | 175 | /// and sticks it in the cache |
214 | /// </summary> | 176 | /// </summary> |
215 | /// <param name="userID"></param> | 177 | /// <param name="userID"></param> |
216 | private void CacheInventoryServiceURL(Scene scene, UUID userID) | 178 | private void CacheInventoryServiceURL(UUID userID) |
217 | { | 179 | { |
218 | if (scene.UserAccountService.GetUserAccount(scene.RegionInfo.ScopeID, userID) == null) | 180 | if (m_Scenes[0].UserAccountService.GetUserAccount(m_Scenes[0].RegionInfo.ScopeID, userID) == null) |
219 | { | 181 | { |
220 | // The user does not have a local account; let's cache its service URL | 182 | // The user does not have a local account; let's cache its service URL |
221 | string inventoryURL = string.Empty; | 183 | string inventoryURL = string.Empty; |
222 | ScenePresence sp = null; | 184 | ScenePresence sp = null; |
223 | scene.TryGetScenePresence(userID, out sp); | 185 | foreach (Scene scene in m_Scenes) |
224 | if (sp != null) | ||
225 | { | 186 | { |
226 | AgentCircuitData aCircuit = scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode); | 187 | scene.TryGetScenePresence(userID, out sp); |
227 | if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI")) | 188 | if (sp != null) |
228 | { | 189 | { |
229 | inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString(); | 190 | AgentCircuitData aCircuit = scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode); |
230 | if (inventoryURL != null && inventoryURL != string.Empty) | 191 | if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI")) |
231 | { | 192 | { |
232 | inventoryURL = inventoryURL.Trim(new char[] { '/' }); | 193 | inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString(); |
233 | m_InventoryURLs.Add(userID, inventoryURL); | 194 | if (inventoryURL != null && inventoryURL != string.Empty) |
195 | { | ||
196 | inventoryURL = inventoryURL.Trim(new char[] { '/' }); | ||
197 | m_InventoryURLs.Add(userID, inventoryURL); | ||
198 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Added {0} to the cache of inventory URLs", inventoryURL); | ||
199 | return; | ||
200 | } | ||
234 | } | 201 | } |
235 | } | 202 | } |
236 | } | 203 | } |
237 | } | 204 | } |
205 | |||
206 | // else put a null; it means that the methods should forward to local grid's inventory | ||
207 | m_InventoryURLs.Add(userID, null); | ||
238 | } | 208 | } |
239 | 209 | ||
240 | private void DropInventoryServiceURL(UUID userID) | 210 | private void DropInventoryServiceURL(UUID userID) |
241 | { | 211 | { |
242 | lock (m_InventoryURLs) | 212 | lock (m_InventoryURLs) |
243 | if (m_InventoryURLs.ContainsKey(userID)) | 213 | if (m_InventoryURLs.ContainsKey(userID)) |
214 | { | ||
215 | string url = m_InventoryURLs[userID]; | ||
244 | m_InventoryURLs.Remove(userID); | 216 | m_InventoryURLs.Remove(userID); |
217 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Removed {0} from the cache of inventory URLs", url); | ||
218 | } | ||
245 | } | 219 | } |
246 | 220 | ||
247 | public string GetInventoryServiceURL(UUID userID) | 221 | public string GetInventoryServiceURL(UUID userID) |
@@ -249,7 +223,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
249 | if (m_InventoryURLs.ContainsKey(userID)) | 223 | if (m_InventoryURLs.ContainsKey(userID)) |
250 | return m_InventoryURLs[userID]; | 224 | return m_InventoryURLs[userID]; |
251 | 225 | ||
252 | return null; | 226 | else |
227 | CacheInventoryServiceURL(userID); | ||
228 | |||
229 | return m_InventoryURLs[userID]; | ||
253 | } | 230 | } |
254 | #endregion | 231 | #endregion |
255 | 232 | ||
@@ -276,7 +253,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
276 | 253 | ||
277 | public InventoryFolderBase GetRootFolder(UUID userID) | 254 | public InventoryFolderBase GetRootFolder(UUID userID) |
278 | { | 255 | { |
279 | m_log.DebugFormat("[HGInventory]: GetRootFolder for {0}", userID); | 256 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: GetRootFolder for {0}", userID); |
280 | 257 | ||
281 | string invURL = GetInventoryServiceURL(userID); | 258 | string invURL = GetInventoryServiceURL(userID); |
282 | 259 | ||
@@ -290,7 +267,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
290 | 267 | ||
291 | public InventoryFolderBase GetFolderForType(UUID userID, AssetType type) | 268 | public InventoryFolderBase GetFolderForType(UUID userID, AssetType type) |
292 | { | 269 | { |
293 | m_log.DebugFormat("[HGInventory]: GetFolderForType {0} type {1}", userID, type); | 270 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: GetFolderForType {0} type {1}", userID, type); |
294 | 271 | ||
295 | string invURL = GetInventoryServiceURL(userID); | 272 | string invURL = GetInventoryServiceURL(userID); |
296 | 273 | ||
@@ -304,7 +281,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
304 | 281 | ||
305 | public InventoryCollection GetFolderContent(UUID userID, UUID folderID) | 282 | public InventoryCollection GetFolderContent(UUID userID, UUID folderID) |
306 | { | 283 | { |
307 | m_log.Debug("[HGInventory]: GetFolderContent " + folderID); | 284 | m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolderContent " + folderID); |
308 | 285 | ||
309 | string invURL = GetInventoryServiceURL(userID); | 286 | string invURL = GetInventoryServiceURL(userID); |
310 | 287 | ||
@@ -319,7 +296,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
319 | 296 | ||
320 | public List<InventoryItemBase> GetFolderItems(UUID userID, UUID folderID) | 297 | public List<InventoryItemBase> GetFolderItems(UUID userID, UUID folderID) |
321 | { | 298 | { |
322 | m_log.Debug("[HGInventory]: GetFolderItems " + folderID); | 299 | m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolderItems " + folderID); |
323 | 300 | ||
324 | string invURL = GetInventoryServiceURL(userID); | 301 | string invURL = GetInventoryServiceURL(userID); |
325 | 302 | ||
@@ -337,7 +314,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
337 | if (folder == null) | 314 | if (folder == null) |
338 | return false; | 315 | return false; |
339 | 316 | ||
340 | m_log.Debug("[HGInventory]: AddFolder " + folder.ID); | 317 | m_log.Debug("[HG INVENTORY CONNECTOR]: AddFolder " + folder.ID); |
341 | 318 | ||
342 | string invURL = GetInventoryServiceURL(folder.Owner); | 319 | string invURL = GetInventoryServiceURL(folder.Owner); |
343 | 320 | ||
@@ -354,7 +331,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
354 | if (folder == null) | 331 | if (folder == null) |
355 | return false; | 332 | return false; |
356 | 333 | ||
357 | m_log.Debug("[HGInventory]: UpdateFolder " + folder.ID); | 334 | m_log.Debug("[HG INVENTORY CONNECTOR]: UpdateFolder " + folder.ID); |
358 | 335 | ||
359 | string invURL = GetInventoryServiceURL(folder.Owner); | 336 | string invURL = GetInventoryServiceURL(folder.Owner); |
360 | 337 | ||
@@ -373,7 +350,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
373 | if (folderIDs.Count == 0) | 350 | if (folderIDs.Count == 0) |
374 | return false; | 351 | return false; |
375 | 352 | ||
376 | m_log.Debug("[HGInventory]: DeleteFolders for " + ownerID); | 353 | m_log.Debug("[HG INVENTORY CONNECTOR]: DeleteFolders for " + ownerID); |
377 | 354 | ||
378 | string invURL = GetInventoryServiceURL(ownerID); | 355 | string invURL = GetInventoryServiceURL(ownerID); |
379 | 356 | ||
@@ -390,7 +367,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
390 | if (folder == null) | 367 | if (folder == null) |
391 | return false; | 368 | return false; |
392 | 369 | ||
393 | m_log.Debug("[HGInventory]: MoveFolder for " + folder.Owner); | 370 | m_log.Debug("[HG INVENTORY CONNECTOR]: MoveFolder for " + folder.Owner); |
394 | 371 | ||
395 | string invURL = GetInventoryServiceURL(folder.Owner); | 372 | string invURL = GetInventoryServiceURL(folder.Owner); |
396 | 373 | ||
@@ -407,7 +384,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
407 | if (folder == null) | 384 | if (folder == null) |
408 | return false; | 385 | return false; |
409 | 386 | ||
410 | m_log.Debug("[HGInventory]: PurgeFolder for " + folder.Owner); | 387 | m_log.Debug("[HG INVENTORY CONNECTOR]: PurgeFolder for " + folder.Owner); |
411 | 388 | ||
412 | string invURL = GetInventoryServiceURL(folder.Owner); | 389 | string invURL = GetInventoryServiceURL(folder.Owner); |
413 | 390 | ||
@@ -424,7 +401,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
424 | if (item == null) | 401 | if (item == null) |
425 | return false; | 402 | return false; |
426 | 403 | ||
427 | m_log.Debug("[HGInventory]: AddItem " + item.ID); | 404 | m_log.Debug("[HG INVENTORY CONNECTOR]: AddItem " + item.ID); |
428 | 405 | ||
429 | string invURL = GetInventoryServiceURL(item.Owner); | 406 | string invURL = GetInventoryServiceURL(item.Owner); |
430 | 407 | ||
@@ -441,7 +418,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
441 | if (item == null) | 418 | if (item == null) |
442 | return false; | 419 | return false; |
443 | 420 | ||
444 | m_log.Debug("[HGInventory]: UpdateItem " + item.ID); | 421 | m_log.Debug("[HG INVENTORY CONNECTOR]: UpdateItem " + item.ID); |
445 | 422 | ||
446 | string invURL = GetInventoryServiceURL(item.Owner); | 423 | string invURL = GetInventoryServiceURL(item.Owner); |
447 | 424 | ||
@@ -460,7 +437,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
460 | if (items.Count == 0) | 437 | if (items.Count == 0) |
461 | return true; | 438 | return true; |
462 | 439 | ||
463 | m_log.Debug("[HGInventory]: MoveItems for " + ownerID); | 440 | m_log.Debug("[HG INVENTORY CONNECTOR]: MoveItems for " + ownerID); |
464 | 441 | ||
465 | string invURL = GetInventoryServiceURL(ownerID); | 442 | string invURL = GetInventoryServiceURL(ownerID); |
466 | 443 | ||
@@ -481,7 +458,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
481 | if (itemIDs.Count == 0) | 458 | if (itemIDs.Count == 0) |
482 | return true; | 459 | return true; |
483 | 460 | ||
484 | m_log.Debug("[HGInventory]: DeleteItems for " + ownerID); | 461 | m_log.Debug("[HG INVENTORY CONNECTOR]: DeleteItems for " + ownerID); |
485 | 462 | ||
486 | string invURL = GetInventoryServiceURL(ownerID); | 463 | string invURL = GetInventoryServiceURL(ownerID); |
487 | 464 | ||
@@ -497,7 +474,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
497 | { | 474 | { |
498 | if (item == null) | 475 | if (item == null) |
499 | return null; | 476 | return null; |
500 | m_log.Debug("[HGInventory]: GetItem " + item.ID); | 477 | m_log.Debug("[HG INVENTORY CONNECTOR]: GetItem " + item.ID); |
501 | 478 | ||
502 | string invURL = GetInventoryServiceURL(item.Owner); | 479 | string invURL = GetInventoryServiceURL(item.Owner); |
503 | 480 | ||
@@ -514,7 +491,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
514 | if (folder == null) | 491 | if (folder == null) |
515 | return null; | 492 | return null; |
516 | 493 | ||
517 | m_log.Debug("[HGInventory]: GetFolder " + folder.ID); | 494 | m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolder " + folder.ID); |
518 | 495 | ||
519 | string invURL = GetInventoryServiceURL(folder.Owner); | 496 | string invURL = GetInventoryServiceURL(folder.Owner); |
520 | 497 | ||
@@ -538,7 +515,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
538 | 515 | ||
539 | public int GetAssetPermissions(UUID userID, UUID assetID) | 516 | public int GetAssetPermissions(UUID userID, UUID assetID) |
540 | { | 517 | { |
541 | m_log.Debug("[HGInventory]: GetAssetPermissions " + assetID); | 518 | m_log.Debug("[HG INVENTORY CONNECTOR]: GetAssetPermissions " + assetID); |
542 | 519 | ||
543 | string invURL = GetInventoryServiceURL(userID); | 520 | string invURL = GetInventoryServiceURL(userID); |
544 | 521 | ||
@@ -575,44 +552,5 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
575 | return connector; | 552 | return connector; |
576 | } | 553 | } |
577 | 554 | ||
578 | |||
579 | private UUID GetSessionID(UUID userID) | ||
580 | { | ||
581 | ScenePresence sp = null; | ||
582 | if (m_Scene.TryGetScenePresence(userID, out sp)) | ||
583 | { | ||
584 | return sp.ControllingClient.SessionId; | ||
585 | } | ||
586 | |||
587 | m_log.DebugFormat("[HG INVENTORY CONNECTOR]: scene presence for {0} not found", userID); | ||
588 | return UUID.Zero; | ||
589 | } | ||
590 | |||
591 | private bool IsForeignUser(UUID userID, out string inventoryURL) | ||
592 | { | ||
593 | inventoryURL = string.Empty; | ||
594 | UserAccount account = null; | ||
595 | if (m_Scene.UserAccountService != null) | ||
596 | account = m_Scene.UserAccountService.GetUserAccount(m_Scene.RegionInfo.ScopeID, userID); | ||
597 | |||
598 | if (account == null) // foreign user | ||
599 | { | ||
600 | ScenePresence sp = null; | ||
601 | m_Scene.TryGetScenePresence(userID, out sp); | ||
602 | if (sp != null) | ||
603 | { | ||
604 | AgentCircuitData aCircuit = m_Scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode); | ||
605 | if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI")) | ||
606 | { | ||
607 | inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString(); | ||
608 | inventoryURL = inventoryURL.Trim(new char[] { '/' }); | ||
609 | return true; | ||
610 | } | ||
611 | } | ||
612 | } | ||
613 | return false; | ||
614 | } | ||
615 | |||
616 | |||
617 | } | 555 | } |
618 | } | 556 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs index ac9e792..277060d 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs | |||
@@ -172,11 +172,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
172 | return m_RemoteConnector.GetFolderForType(userID, type); | 172 | return m_RemoteConnector.GetFolderForType(userID, type); |
173 | } | 173 | } |
174 | 174 | ||
175 | public Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(UUID userID) | ||
176 | { | ||
177 | return m_RemoteConnector.GetSystemFolders(userID); | ||
178 | } | ||
179 | |||
180 | public InventoryCollection GetFolderContent(UUID userID, UUID folderID) | 175 | public InventoryCollection GetFolderContent(UUID userID, UUID folderID) |
181 | { | 176 | { |
182 | return m_RemoteConnector.GetFolderContent(userID, folderID); | 177 | return m_RemoteConnector.GetFolderContent(userID, folderID); |
@@ -267,9 +262,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory | |||
267 | 262 | ||
268 | public InventoryItemBase GetItem(InventoryItemBase item) | 263 | public InventoryItemBase GetItem(InventoryItemBase item) |
269 | { | 264 | { |
265 | m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetItem {0}", item.ID); | ||
270 | if (item == null) | 266 | if (item == null) |
271 | return null; | 267 | return null; |
272 | 268 | ||
269 | if (m_RemoteConnector == null) | ||
270 | m_log.DebugFormat("[XINVENTORY CONNECTOR]: connector stub is null!!!"); | ||
273 | return m_RemoteConnector.GetItem(item); | 271 | return m_RemoteConnector.GetItem(item); |
274 | } | 272 | } |
275 | 273 | ||
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs index 865f99e..5f3666e 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs | |||
@@ -76,7 +76,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
76 | 76 | ||
77 | m_PresenceDetector = new PresenceDetector(this); | 77 | m_PresenceDetector = new PresenceDetector(this); |
78 | 78 | ||
79 | m_log.Info("[INVENTORY CONNECTOR]: Remote presence enabled"); | 79 | m_log.Info("[REMOTE PRESENCE CONNECTOR]: Remote presence enabled"); |
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
diff --git a/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs b/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs deleted file mode 100644 index 41897eb..0000000 --- a/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.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 OpenSimulator 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 | using System; | ||
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Net; | ||
32 | using System.Reflection; | ||
33 | using log4net; | ||
34 | using Nini.Config; | ||
35 | using Nwc.XmlRpc; | ||
36 | using OpenSim.Server.Base; | ||
37 | using OpenSim.Server.Handlers.Inventory; | ||
38 | using OpenSim.Services.Interfaces; | ||
39 | using OpenSim.Framework; | ||
40 | using OpenSim.Framework.Servers.HttpServer; | ||
41 | using OpenSim.Server.Handlers.Base; | ||
42 | using OpenMetaverse; | ||
43 | |||
44 | namespace OpenSim.Server.Handlers.Hypergrid | ||
45 | { | ||
46 | public class HGInventoryServiceInConnector : InventoryServiceInConnector | ||
47 | { | ||
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
49 | |||
50 | //private static readonly int INVENTORY_DEFAULT_SESSION_TIME = 30; // secs | ||
51 | //private AuthedSessionCache m_session_cache = new AuthedSessionCache(INVENTORY_DEFAULT_SESSION_TIME); | ||
52 | |||
53 | private IUserAgentService m_UserAgentService; | ||
54 | |||
55 | public HGInventoryServiceInConnector(IConfigSource config, IHttpServer server, string configName) : | ||
56 | base(config, server, configName) | ||
57 | { | ||
58 | IConfig serverConfig = config.Configs[m_ConfigName]; | ||
59 | if (serverConfig == null) | ||
60 | throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName)); | ||
61 | |||
62 | string userAgentService = serverConfig.GetString("UserAgentService", string.Empty); | ||
63 | string m_userserver_url = serverConfig.GetString("UserAgentURI", String.Empty); | ||
64 | if (m_userserver_url != string.Empty) | ||
65 | { | ||
66 | Object[] args = new Object[] { m_userserver_url }; | ||
67 | m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(userAgentService, args); | ||
68 | } | ||
69 | |||
70 | AddHttpHandlers(server); | ||
71 | m_log.Debug("[HG INVENTORY HANDLER]: handlers initialized"); | ||
72 | } | ||
73 | |||
74 | /// <summary> | ||
75 | /// Check that the source of an inventory request for a particular agent is a current session belonging to | ||
76 | /// that agent. | ||
77 | /// </summary> | ||
78 | /// <param name="session_id"></param> | ||
79 | /// <param name="avatar_id"></param> | ||
80 | /// <returns></returns> | ||
81 | public override bool CheckAuthSession(string session_id, string avatar_id) | ||
82 | { | ||
83 | //m_log.InfoFormat("[HG INVENTORY IN CONNECTOR]: checking authed session {0} {1}", session_id, avatar_id); | ||
84 | // This doesn't work | ||
85 | |||
86 | // if (m_session_cache.getCachedSession(session_id, avatar_id) == null) | ||
87 | // { | ||
88 | // //cache miss, ask userserver | ||
89 | // m_UserAgentService.VerifyAgent(session_id, ???); | ||
90 | // } | ||
91 | // else | ||
92 | // { | ||
93 | // // cache hits | ||
94 | // m_log.Info("[HG INVENTORY IN CONNECTOR]: got authed session from cache"); | ||
95 | // return true; | ||
96 | // } | ||
97 | |||
98 | // m_log.Warn("[HG INVENTORY IN CONNECTOR]: unknown session_id, request rejected"); | ||
99 | // return false; | ||
100 | |||
101 | return true; | ||
102 | } | ||
103 | } | ||
104 | } | ||
diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index 16b05df..b0fee6d 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs | |||
@@ -144,8 +144,6 @@ namespace OpenSim.Server.Handlers.Asset | |||
144 | return HandleGetActiveGestures(request); | 144 | return HandleGetActiveGestures(request); |
145 | case "GETASSETPERMISSIONS": | 145 | case "GETASSETPERMISSIONS": |
146 | return HandleGetAssetPermissions(request); | 146 | return HandleGetAssetPermissions(request); |
147 | case "GETSYSTEMFOLDERS": | ||
148 | return HandleGetSystemFolders(request); | ||
149 | } | 147 | } |
150 | m_log.DebugFormat("[XINVENTORY HANDLER]: unknown method request: {0}", method); | 148 | m_log.DebugFormat("[XINVENTORY HANDLER]: unknown method request: {0}", method); |
151 | } | 149 | } |
@@ -575,29 +573,6 @@ namespace OpenSim.Server.Handlers.Asset | |||
575 | return encoding.GetBytes(xmlString); | 573 | return encoding.GetBytes(xmlString); |
576 | } | 574 | } |
577 | 575 | ||
578 | byte[] HandleGetSystemFolders(Dictionary<string, object> request) | ||
579 | { | ||
580 | Dictionary<string, object> result = new Dictionary<string, object>(); | ||
581 | UUID principal = UUID.Zero; | ||
582 | UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); | ||
583 | |||
584 | Dictionary<AssetType, InventoryFolderBase> sfolders = GetSystemFolders(principal); | ||
585 | //m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count); | ||
586 | |||
587 | Dictionary<string, object> folders = new Dictionary<string, object>(); | ||
588 | int i = 0; | ||
589 | foreach (KeyValuePair<AssetType, InventoryFolderBase> kvp in sfolders) | ||
590 | { | ||
591 | folders["folder_" + i.ToString()] = EncodeFolder(kvp.Value); | ||
592 | i++; | ||
593 | } | ||
594 | result["FOLDERS"] = folders; | ||
595 | |||
596 | string xmlString = ServerUtils.BuildXmlResponse(result); | ||
597 | //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); | ||
598 | UTF8Encoding encoding = new UTF8Encoding(); | ||
599 | return encoding.GetBytes(xmlString); | ||
600 | } | ||
601 | 576 | ||
602 | private Dictionary<string, object> EncodeFolder(InventoryFolderBase f) | 577 | private Dictionary<string, object> EncodeFolder(InventoryFolderBase f) |
603 | { | 578 | { |
@@ -683,30 +658,5 @@ namespace OpenSim.Server.Handlers.Asset | |||
683 | return item; | 658 | return item; |
684 | } | 659 | } |
685 | 660 | ||
686 | #region Extra | ||
687 | private Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(UUID userID) | ||
688 | { | ||
689 | InventoryFolderBase root = m_InventoryService.GetRootFolder(userID); | ||
690 | if (root != null) | ||
691 | { | ||
692 | InventoryCollection content = m_InventoryService.GetFolderContent(userID, root.ID); | ||
693 | if (content != null) | ||
694 | { | ||
695 | Dictionary<AssetType, InventoryFolderBase> folders = new Dictionary<AssetType, InventoryFolderBase>(); | ||
696 | foreach (InventoryFolderBase folder in content.Folders) | ||
697 | { | ||
698 | if ((folder.Type != (short)AssetType.Folder) && (folder.Type != (short)AssetType.Unknown)) | ||
699 | folders[(AssetType)folder.Type] = folder; | ||
700 | } | ||
701 | // Put the root folder there, as type Folder | ||
702 | folders[AssetType.Folder] = root; | ||
703 | return folders; | ||
704 | } | ||
705 | } | ||
706 | m_log.WarnFormat("[XINVENTORY SERVICE]: System folders for {0} not found", userID); | ||
707 | return new Dictionary<AssetType, InventoryFolderBase>(); | ||
708 | } | ||
709 | #endregion | ||
710 | |||
711 | } | 661 | } |
712 | } | 662 | } |
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs index 52294da..e25e7eb 100644 --- a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs | |||
@@ -158,30 +158,31 @@ namespace OpenSim.Services.Connectors | |||
158 | 158 | ||
159 | public InventoryCollection GetFolderContent(UUID principalID, UUID folderID) | 159 | public InventoryCollection GetFolderContent(UUID principalID, UUID folderID) |
160 | { | 160 | { |
161 | Dictionary<string,object> ret = MakeRequest("GETFOLDERCONTENT", | ||
162 | new Dictionary<string,object> { | ||
163 | { "PRINCIPAL", principalID.ToString() }, | ||
164 | { "FOLDER", folderID.ToString() } | ||
165 | }); | ||
166 | |||
167 | if (ret == null) | ||
168 | return null; | ||
169 | if (ret.Count == 0) | ||
170 | return null; | ||
171 | |||
172 | |||
173 | InventoryCollection inventory = new InventoryCollection(); | 161 | InventoryCollection inventory = new InventoryCollection(); |
174 | inventory.Folders = new List<InventoryFolderBase>(); | ||
175 | inventory.Items = new List<InventoryItemBase>(); | ||
176 | inventory.UserID = principalID; | ||
177 | 162 | ||
178 | Dictionary<string,object> folders = | ||
179 | (Dictionary<string,object>)ret["FOLDERS"]; | ||
180 | Dictionary<string,object> items = | ||
181 | (Dictionary<string,object>)ret["ITEMS"]; | ||
182 | |||
183 | try | 163 | try |
184 | { | 164 | { |
165 | Dictionary<string,object> ret = MakeRequest("GETFOLDERCONTENT", | ||
166 | new Dictionary<string,object> { | ||
167 | { "PRINCIPAL", principalID.ToString() }, | ||
168 | { "FOLDER", folderID.ToString() } | ||
169 | }); | ||
170 | |||
171 | if (ret == null) | ||
172 | return null; | ||
173 | if (ret.Count == 0) | ||
174 | return null; | ||
175 | |||
176 | |||
177 | inventory.Folders = new List<InventoryFolderBase>(); | ||
178 | inventory.Items = new List<InventoryItemBase>(); | ||
179 | inventory.UserID = principalID; | ||
180 | |||
181 | Dictionary<string,object> folders = | ||
182 | (Dictionary<string,object>)ret["FOLDERS"]; | ||
183 | Dictionary<string,object> items = | ||
184 | (Dictionary<string,object>)ret["ITEMS"]; | ||
185 | |||
185 | foreach (Object o in folders.Values) // getting the values directly, we don't care about the keys folder_i | 186 | foreach (Object o in folders.Values) // getting the values directly, we don't care about the keys folder_i |
186 | inventory.Folders.Add(BuildFolder((Dictionary<string, object>)o)); | 187 | inventory.Folders.Add(BuildFolder((Dictionary<string, object>)o)); |
187 | foreach (Object o in items.Values) // getting the values directly, we don't care about the keys item_i | 188 | foreach (Object o in items.Values) // getting the values directly, we don't care about the keys item_i |
@@ -189,7 +190,7 @@ namespace OpenSim.Services.Connectors | |||
189 | } | 190 | } |
190 | catch (Exception e) | 191 | catch (Exception e) |
191 | { | 192 | { |
192 | m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception unwrapping content list: {0}", e.Message); | 193 | m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception in GetFolderContent: {0}", e.Message); |
193 | } | 194 | } |
194 | 195 | ||
195 | return inventory; | 196 | return inventory; |
@@ -408,32 +409,50 @@ namespace OpenSim.Services.Connectors | |||
408 | 409 | ||
409 | public InventoryItemBase GetItem(InventoryItemBase item) | 410 | public InventoryItemBase GetItem(InventoryItemBase item) |
410 | { | 411 | { |
411 | Dictionary<string,object> ret = MakeRequest("GETITEM", | 412 | try |
412 | new Dictionary<string,object> { | 413 | { |
414 | Dictionary<string, object> ret = MakeRequest("GETITEM", | ||
415 | new Dictionary<string, object> { | ||
413 | { "ID", item.ID.ToString() } | 416 | { "ID", item.ID.ToString() } |
414 | }); | 417 | }); |
415 | 418 | ||
416 | if (ret == null) | 419 | if (ret == null) |
417 | return null; | 420 | return null; |
418 | if (ret.Count == 0) | 421 | if (ret.Count == 0) |
419 | return null; | 422 | return null; |
423 | |||
424 | return BuildItem((Dictionary<string, object>)ret["item"]); | ||
425 | } | ||
426 | catch (Exception e) | ||
427 | { | ||
428 | m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception in GetItem: {0}", e.Message); | ||
429 | } | ||
420 | 430 | ||
421 | return BuildItem((Dictionary<string, object>)ret["item"]); | 431 | return null; |
422 | } | 432 | } |
423 | 433 | ||
424 | public InventoryFolderBase GetFolder(InventoryFolderBase folder) | 434 | public InventoryFolderBase GetFolder(InventoryFolderBase folder) |
425 | { | 435 | { |
426 | Dictionary<string,object> ret = MakeRequest("GETFOLDER", | 436 | try |
427 | new Dictionary<string,object> { | 437 | { |
438 | Dictionary<string, object> ret = MakeRequest("GETFOLDER", | ||
439 | new Dictionary<string, object> { | ||
428 | { "ID", folder.ID.ToString() } | 440 | { "ID", folder.ID.ToString() } |
429 | }); | 441 | }); |
430 | 442 | ||
431 | if (ret == null) | 443 | if (ret == null) |
432 | return null; | 444 | return null; |
433 | if (ret.Count == 0) | 445 | if (ret.Count == 0) |
434 | return null; | 446 | return null; |
435 | 447 | ||
436 | return BuildFolder((Dictionary<string, object>)ret["folder"]); | 448 | return BuildFolder((Dictionary<string, object>)ret["folder"]); |
449 | } | ||
450 | catch (Exception e) | ||
451 | { | ||
452 | m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception in GetFolder: {0}", e.Message); | ||
453 | } | ||
454 | |||
455 | return null; | ||
437 | } | 456 | } |
438 | 457 | ||
439 | public List<InventoryItemBase> GetActiveGestures(UUID principalID) | 458 | public List<InventoryItemBase> GetActiveGestures(UUID principalID) |
@@ -468,36 +487,6 @@ namespace OpenSim.Services.Connectors | |||
468 | return int.Parse(ret["RESULT"].ToString()); | 487 | return int.Parse(ret["RESULT"].ToString()); |
469 | } | 488 | } |
470 | 489 | ||
471 | public Dictionary<AssetType, InventoryFolderBase> GetSystemFolders(UUID userID) | ||
472 | { | ||
473 | Dictionary<string, object> ret = MakeRequest("GETSYSTEMFOLDERS", | ||
474 | new Dictionary<string, object> { | ||
475 | { "PRINCIPAL", userID.ToString() }, | ||
476 | }); | ||
477 | |||
478 | if (ret == null) | ||
479 | return new Dictionary<AssetType,InventoryFolderBase>(); | ||
480 | |||
481 | Dictionary<AssetType, InventoryFolderBase> sfolders = new Dictionary<AssetType, InventoryFolderBase>(); | ||
482 | |||
483 | try | ||
484 | { | ||
485 | Dictionary<string, object> folders = (Dictionary<string, object>)ret["FOLDERS"]; | ||
486 | |||
487 | foreach (Object o in folders.Values) // getting the values directly, we don't care about the keys folder_i | ||
488 | { | ||
489 | InventoryFolderBase folder = BuildFolder((Dictionary<string, object>)o); | ||
490 | sfolders.Add((AssetType)folder.Type, folder); | ||
491 | } | ||
492 | |||
493 | } | ||
494 | catch (Exception e) | ||
495 | { | ||
496 | m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: exception {0}", e.Message); | ||
497 | } | ||
498 | |||
499 | return sfolders; | ||
500 | } | ||
501 | 490 | ||
502 | // These are either obsolete or unused | 491 | // These are either obsolete or unused |
503 | // | 492 | // |
diff --git a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs index 4dadd9e..23621b7 100644 --- a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs +++ b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs | |||
@@ -329,7 +329,7 @@ namespace OpenSim.Services.Connectors | |||
329 | reqString); | 329 | reqString); |
330 | if (reply == null || (reply != null && reply == string.Empty)) | 330 | if (reply == null || (reply != null && reply == string.Empty)) |
331 | { | 331 | { |
332 | m_log.DebugFormat("[PRESENCE CONNECTOR]: GetAgent received null or empty reply"); | 332 | m_log.DebugFormat("[PRESENCE CONNECTOR]: GetAgents received null or empty reply"); |
333 | return null; | 333 | return null; |
334 | } | 334 | } |
335 | } | 335 | } |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 59bce36..f49cd97 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -112,11 +112,15 @@ | |||
112 | ;storage_plugin = "OpenSim.Data.Null.dll" | 112 | ;storage_plugin = "OpenSim.Data.Null.dll" |
113 | 113 | ||
114 | ; --- To use sqlite as region storage: | 114 | ; --- To use sqlite as region storage: |
115 | ; PLEASE NOTE: If you use want to use SQLite with Mono 2.6 and above, you must use the SQLiteNG plugin rather than the existing SQLite one | 115 | ; |
116 | ; do this by commenting out the OpenSim.Data.SQLite.dll line below and uncommenting the OpenSim.Data.SQLiteNG.dll one | 116 | ; PLEASE NOTE: Unfortunately, the current SQLite database plugin (necessary to use SQLite with Mono on Linux) is |
117 | ; not compatible with the sqlite3 library installed on Mac OSX. If you're using Mono 2.4 you can still use the old sqlite | ||
118 | ; library by uncommenting the SQLiteLegacy.dll storage plugin (and commenting out SQLite.dll). Unfortunately, the older library | ||
119 | ; will not work with Mono 2.6 on Mac OSX so you will either need to replace the OSX sqlite3 system library or use MySQL instead | ||
120 | ; | ||
117 | ; You will also need to do the same thing in config-include/StandaloneCommon.ini if you are running in standalone mode | 121 | ; You will also need to do the same thing in config-include/StandaloneCommon.ini if you are running in standalone mode |
118 | storage_plugin = "OpenSim.Data.SQLite.dll" | 122 | storage_plugin = "OpenSim.Data.SQLite.dll" |
119 | ; storage_plugin = "OpenSim.Data.SQLiteNG.dll" | 123 | ;storage_plugin = "OpenSim.Data.SQLiteLegacy.dll" |
120 | storage_connection_string="URI=file:OpenSim.db,version=3"; | 124 | storage_connection_string="URI=file:OpenSim.db,version=3"; |
121 | 125 | ||
122 | ; --- To use MySQL storage, supply your own connection string (this is only an example): | 126 | ; --- To use MySQL storage, supply your own connection string (this is only an example): |
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example index 74bdbe2..572c153 100644 --- a/bin/config-include/StandaloneCommon.ini.example +++ b/bin/config-include/StandaloneCommon.ini.example | |||
@@ -6,12 +6,12 @@ | |||
6 | ; | 6 | ; |
7 | 7 | ||
8 | ; SQLite | 8 | ; SQLite |
9 | ; Uncomment this line if you want to use sqlite storage with Mono 2.4 | ||
10 | Include-Storage = "config-include/storage/SQLiteStandalone.ini"; | 9 | Include-Storage = "config-include/storage/SQLiteStandalone.ini"; |
11 | 10 | ||
12 | ; If you want to use sqlite with Mono 2.6 and above, uncomment this line instead. | 11 | ; Unfortunately the current SQLite database plugin is not compatible with Mac OSX. You can still use the older |
13 | ; Don't forget to do the same thing for the storage_plugin setting in OpenSim.ini | 12 | ; legacy sqlite library if you are using Mono 2.4. Please see the notes in OpenSim.ini (search for sqlite) |
14 | ; Include-Storage = "config-include/storage/SQLiteNGStandalone.ini"; | 13 | ; for more details |
14 | ;Include-Storage = "config-include/storage/SQLiteLegacyStandalone.ini"; | ||
15 | 15 | ||
16 | ; MySql | 16 | ; MySql |
17 | ; Uncomment these lines if you want to use mysql storage | 17 | ; Uncomment these lines if you want to use mysql storage |
diff --git a/bin/config-include/storage/SQLiteNGStandalone.ini b/bin/config-include/storage/SQLiteLegacyStandalone.ini index ba00aca..1d4dd29 100644 --- a/bin/config-include/storage/SQLiteNGStandalone.ini +++ b/bin/config-include/storage/SQLiteLegacyStandalone.ini | |||
@@ -1,7 +1,7 @@ | |||
1 | ; These are the initialization settings for running OpenSim Standalone with an SQLite database | 1 | ; These are the initialization settings for running OpenSim Standalone with an SQLite database |
2 | 2 | ||
3 | [DatabaseService] | 3 | [DatabaseService] |
4 | StorageProvider = "OpenSim.Data.SQLiteNG.dll" | 4 | StorageProvider = "OpenSim.Data.SQLiteLegacy.dll" |
5 | 5 | ||
6 | [AvatarService] | 6 | [AvatarService] |
7 | ConnectionString = "URI=file:avatars.db,version=3" | 7 | ConnectionString = "URI=file:avatars.db,version=3" |
diff --git a/prebuild.xml b/prebuild.xml index 123f569..329ef7b 100644 --- a/prebuild.xml +++ b/prebuild.xml | |||
@@ -2178,7 +2178,7 @@ | |||
2178 | </Files> | 2178 | </Files> |
2179 | </Project> | 2179 | </Project> |
2180 | 2180 | ||
2181 | <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLite" path="OpenSim/Data/SQLite" type="Library"> | 2181 | <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLiteLegacy" path="OpenSim/Data/SQLiteLegacy" type="Library"> |
2182 | <Configuration name="Debug"> | 2182 | <Configuration name="Debug"> |
2183 | <Options> | 2183 | <Options> |
2184 | <OutputPath>../../../bin/</OutputPath> | 2184 | <OutputPath>../../../bin/</OutputPath> |
@@ -2215,7 +2215,7 @@ | |||
2215 | </Files> | 2215 | </Files> |
2216 | </Project> | 2216 | </Project> |
2217 | 2217 | ||
2218 | <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLiteNG" path="OpenSim/Data/SQLiteNG" type="Library"> | 2218 | <Project frameworkVersion="v3_5" name="OpenSim.Data.SQLite" path="OpenSim/Data/SQLite" type="Library"> |
2219 | <Configuration name="Debug"> | 2219 | <Configuration name="Debug"> |
2220 | <Options> | 2220 | <Options> |
2221 | <OutputPath>../../../bin/</OutputPath> | 2221 | <OutputPath>../../../bin/</OutputPath> |