diff options
Diffstat (limited to 'OpenSim/Data/MySQL')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLAssetData.cs | 4 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLSimulationData.cs | 41 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLUserAccountData.cs | 43 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Resources/RegionStore.migrations | 2 |
4 files changed, 58 insertions, 32 deletions
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index a743479..a22dc0a 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs | |||
@@ -155,7 +155,7 @@ namespace OpenSim.Data.MySQL | |||
155 | /// </summary> | 155 | /// </summary> |
156 | /// <param name="asset">Asset UUID to create</param> | 156 | /// <param name="asset">Asset UUID to create</param> |
157 | /// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks> | 157 | /// <remarks>On failure : Throw an exception and attempt to reconnect to database</remarks> |
158 | override public void StoreAsset(AssetBase asset) | 158 | override public bool StoreAsset(AssetBase asset) |
159 | { | 159 | { |
160 | lock (m_dbLock) | 160 | lock (m_dbLock) |
161 | { | 161 | { |
@@ -203,12 +203,14 @@ namespace OpenSim.Data.MySQL | |||
203 | cmd.Parameters.AddWithValue("?data", asset.Data); | 203 | cmd.Parameters.AddWithValue("?data", asset.Data); |
204 | cmd.ExecuteNonQuery(); | 204 | cmd.ExecuteNonQuery(); |
205 | cmd.Dispose(); | 205 | cmd.Dispose(); |
206 | return true; | ||
206 | } | 207 | } |
207 | } | 208 | } |
208 | catch (Exception e) | 209 | catch (Exception e) |
209 | { | 210 | { |
210 | m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}", | 211 | m_log.ErrorFormat("[ASSET DB]: MySQL failure creating asset {0} with name \"{1}\". Error: {2}", |
211 | asset.FullID, asset.Name, e.Message); | 212 | asset.FullID, asset.Name, e.Message); |
213 | return false; | ||
212 | } | 214 | } |
213 | } | 215 | } |
214 | } | 216 | } |
diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs index 6d14b82..3437250 100644 --- a/OpenSim/Data/MySQL/MySQLSimulationData.cs +++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs | |||
@@ -66,7 +66,7 @@ namespace OpenSim.Data.MySQL | |||
66 | Initialise(connectionString); | 66 | Initialise(connectionString); |
67 | } | 67 | } |
68 | 68 | ||
69 | public void Initialise(string connectionString) | 69 | public virtual void Initialise(string connectionString) |
70 | { | 70 | { |
71 | m_connectionString = connectionString; | 71 | m_connectionString = connectionString; |
72 | 72 | ||
@@ -113,7 +113,7 @@ namespace OpenSim.Data.MySQL | |||
113 | 113 | ||
114 | public void Dispose() {} | 114 | public void Dispose() {} |
115 | 115 | ||
116 | public void StoreObject(SceneObjectGroup obj, UUID regionUUID) | 116 | public virtual void StoreObject(SceneObjectGroup obj, UUID regionUUID) |
117 | { | 117 | { |
118 | uint flags = obj.RootPart.GetEffectiveObjectFlags(); | 118 | uint flags = obj.RootPart.GetEffectiveObjectFlags(); |
119 | 119 | ||
@@ -241,7 +241,7 @@ namespace OpenSim.Data.MySQL | |||
241 | } | 241 | } |
242 | } | 242 | } |
243 | 243 | ||
244 | public void RemoveObject(UUID obj, UUID regionUUID) | 244 | public virtual void RemoveObject(UUID obj, UUID regionUUID) |
245 | { | 245 | { |
246 | // m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID); | 246 | // m_log.DebugFormat("[REGION DB]: Deleting scene object {0} from {1} in database", obj, regionUUID); |
247 | 247 | ||
@@ -390,7 +390,7 @@ namespace OpenSim.Data.MySQL | |||
390 | } | 390 | } |
391 | } | 391 | } |
392 | 392 | ||
393 | public List<SceneObjectGroup> LoadObjects(UUID regionID) | 393 | public virtual List<SceneObjectGroup> LoadObjects(UUID regionID) |
394 | { | 394 | { |
395 | const int ROWS_PER_QUERY = 5000; | 395 | const int ROWS_PER_QUERY = 5000; |
396 | 396 | ||
@@ -559,7 +559,7 @@ namespace OpenSim.Data.MySQL | |||
559 | } | 559 | } |
560 | } | 560 | } |
561 | 561 | ||
562 | public void StoreTerrain(double[,] ter, UUID regionID) | 562 | public virtual void StoreTerrain(double[,] ter, UUID regionID) |
563 | { | 563 | { |
564 | m_log.Info("[REGION DB]: Storing terrain"); | 564 | m_log.Info("[REGION DB]: Storing terrain"); |
565 | 565 | ||
@@ -588,7 +588,7 @@ namespace OpenSim.Data.MySQL | |||
588 | } | 588 | } |
589 | } | 589 | } |
590 | 590 | ||
591 | public double[,] LoadTerrain(UUID regionID) | 591 | public virtual double[,] LoadTerrain(UUID regionID) |
592 | { | 592 | { |
593 | double[,] terrain = null; | 593 | double[,] terrain = null; |
594 | 594 | ||
@@ -638,7 +638,7 @@ namespace OpenSim.Data.MySQL | |||
638 | return terrain; | 638 | return terrain; |
639 | } | 639 | } |
640 | 640 | ||
641 | public void RemoveLandObject(UUID globalID) | 641 | public virtual void RemoveLandObject(UUID globalID) |
642 | { | 642 | { |
643 | lock (m_dbLock) | 643 | lock (m_dbLock) |
644 | { | 644 | { |
@@ -657,7 +657,7 @@ namespace OpenSim.Data.MySQL | |||
657 | } | 657 | } |
658 | } | 658 | } |
659 | 659 | ||
660 | public void StoreLandObject(ILandObject parcel) | 660 | public virtual void StoreLandObject(ILandObject parcel) |
661 | { | 661 | { |
662 | lock (m_dbLock) | 662 | lock (m_dbLock) |
663 | { | 663 | { |
@@ -714,7 +714,7 @@ namespace OpenSim.Data.MySQL | |||
714 | } | 714 | } |
715 | } | 715 | } |
716 | 716 | ||
717 | public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) | 717 | public virtual RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) |
718 | { | 718 | { |
719 | RegionLightShareData nWP = new RegionLightShareData(); | 719 | RegionLightShareData nWP = new RegionLightShareData(); |
720 | nWP.OnSave += StoreRegionWindlightSettings; | 720 | nWP.OnSave += StoreRegionWindlightSettings; |
@@ -736,7 +736,7 @@ namespace OpenSim.Data.MySQL | |||
736 | { | 736 | { |
737 | //No result, so store our default windlight profile and return it | 737 | //No result, so store our default windlight profile and return it |
738 | nWP.regionID = regionUUID; | 738 | nWP.regionID = regionUUID; |
739 | StoreRegionWindlightSettings(nWP); | 739 | // StoreRegionWindlightSettings(nWP); |
740 | return nWP; | 740 | return nWP; |
741 | } | 741 | } |
742 | else | 742 | else |
@@ -811,7 +811,7 @@ namespace OpenSim.Data.MySQL | |||
811 | return nWP; | 811 | return nWP; |
812 | } | 812 | } |
813 | 813 | ||
814 | public RegionSettings LoadRegionSettings(UUID regionUUID) | 814 | public virtual RegionSettings LoadRegionSettings(UUID regionUUID) |
815 | { | 815 | { |
816 | RegionSettings rs = null; | 816 | RegionSettings rs = null; |
817 | 817 | ||
@@ -849,7 +849,7 @@ namespace OpenSim.Data.MySQL | |||
849 | return rs; | 849 | return rs; |
850 | } | 850 | } |
851 | 851 | ||
852 | public void StoreRegionWindlightSettings(RegionLightShareData wl) | 852 | public virtual void StoreRegionWindlightSettings(RegionLightShareData wl) |
853 | { | 853 | { |
854 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) | 854 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) |
855 | { | 855 | { |
@@ -952,7 +952,7 @@ namespace OpenSim.Data.MySQL | |||
952 | } | 952 | } |
953 | } | 953 | } |
954 | 954 | ||
955 | public void RemoveRegionWindlightSettings(UUID regionID) | 955 | public virtual void RemoveRegionWindlightSettings(UUID regionID) |
956 | { | 956 | { |
957 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) | 957 | using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) |
958 | { | 958 | { |
@@ -967,7 +967,7 @@ namespace OpenSim.Data.MySQL | |||
967 | } | 967 | } |
968 | } | 968 | } |
969 | 969 | ||
970 | public void StoreRegionSettings(RegionSettings rs) | 970 | public virtual void StoreRegionSettings(RegionSettings rs) |
971 | { | 971 | { |
972 | lock (m_dbLock) | 972 | lock (m_dbLock) |
973 | { | 973 | { |
@@ -994,7 +994,7 @@ namespace OpenSim.Data.MySQL | |||
994 | "use_estate_sun, fixed_sun, sun_position, " + | 994 | "use_estate_sun, fixed_sun, sun_position, " + |
995 | "covenant, Sandbox, sunvectorx, sunvectory, " + | 995 | "covenant, Sandbox, sunvectorx, sunvectory, " + |
996 | "sunvectorz, loaded_creation_datetime, " + | 996 | "sunvectorz, loaded_creation_datetime, " + |
997 | "loaded_creation_id, map_tile_ID) values (?RegionUUID, ?BlockTerraform, " + | 997 | "loaded_creation_id, map_tile_ID, block_search, casino) values (?RegionUUID, ?BlockTerraform, " + |
998 | "?BlockFly, ?AllowDamage, ?RestrictPushing, " + | 998 | "?BlockFly, ?AllowDamage, ?RestrictPushing, " + |
999 | "?AllowLandResell, ?AllowLandJoinDivide, " + | 999 | "?AllowLandResell, ?AllowLandJoinDivide, " + |
1000 | "?BlockShowInSearch, ?AgentLimit, ?ObjectBonus, " + | 1000 | "?BlockShowInSearch, ?AgentLimit, ?ObjectBonus, " + |
@@ -1009,7 +1009,7 @@ namespace OpenSim.Data.MySQL | |||
1009 | "?SunPosition, ?Covenant, ?Sandbox, " + | 1009 | "?SunPosition, ?Covenant, ?Sandbox, " + |
1010 | "?SunVectorX, ?SunVectorY, ?SunVectorZ, " + | 1010 | "?SunVectorX, ?SunVectorY, ?SunVectorZ, " + |
1011 | "?LoadedCreationDateTime, ?LoadedCreationID, " + | 1011 | "?LoadedCreationDateTime, ?LoadedCreationID, " + |
1012 | "?TerrainImageID)"; | 1012 | "?TerrainImageID, ?block_search, ?casino)"; |
1013 | 1013 | ||
1014 | FillRegionSettingsCommand(cmd, rs); | 1014 | FillRegionSettingsCommand(cmd, rs); |
1015 | 1015 | ||
@@ -1019,7 +1019,7 @@ namespace OpenSim.Data.MySQL | |||
1019 | } | 1019 | } |
1020 | } | 1020 | } |
1021 | 1021 | ||
1022 | public List<LandData> LoadLandObjects(UUID regionUUID) | 1022 | public virtual List<LandData> LoadLandObjects(UUID regionUUID) |
1023 | { | 1023 | { |
1024 | List<LandData> landData = new List<LandData>(); | 1024 | List<LandData> landData = new List<LandData>(); |
1025 | 1025 | ||
@@ -1297,6 +1297,9 @@ namespace OpenSim.Data.MySQL | |||
1297 | 1297 | ||
1298 | newSettings.TerrainImageID = DBGuid.FromDB(row["map_tile_ID"]); | 1298 | newSettings.TerrainImageID = DBGuid.FromDB(row["map_tile_ID"]); |
1299 | 1299 | ||
1300 | newSettings.GodBlockSearch = Convert.ToBoolean(row["block_search"]); | ||
1301 | newSettings.Casino = Convert.ToBoolean(row["casino"]); | ||
1302 | |||
1300 | return newSettings; | 1303 | return newSettings; |
1301 | } | 1304 | } |
1302 | 1305 | ||
@@ -1626,6 +1629,8 @@ namespace OpenSim.Data.MySQL | |||
1626 | cmd.Parameters.AddWithValue("LoadedCreationDateTime", settings.LoadedCreationDateTime); | 1629 | cmd.Parameters.AddWithValue("LoadedCreationDateTime", settings.LoadedCreationDateTime); |
1627 | cmd.Parameters.AddWithValue("LoadedCreationID", settings.LoadedCreationID); | 1630 | cmd.Parameters.AddWithValue("LoadedCreationID", settings.LoadedCreationID); |
1628 | cmd.Parameters.AddWithValue("TerrainImageID", settings.TerrainImageID); | 1631 | cmd.Parameters.AddWithValue("TerrainImageID", settings.TerrainImageID); |
1632 | cmd.Parameters.AddWithValue("block_search", settings.GodBlockSearch); | ||
1633 | cmd.Parameters.AddWithValue("casino", settings.Casino); | ||
1629 | 1634 | ||
1630 | } | 1635 | } |
1631 | 1636 | ||
@@ -1784,7 +1789,7 @@ namespace OpenSim.Data.MySQL | |||
1784 | cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); | 1789 | cmd.Parameters.AddWithValue("Media", null == s.Media ? null : s.Media.ToXml()); |
1785 | } | 1790 | } |
1786 | 1791 | ||
1787 | public void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) | 1792 | public virtual void StorePrimInventory(UUID primID, ICollection<TaskInventoryItem> items) |
1788 | { | 1793 | { |
1789 | lock (m_dbLock) | 1794 | lock (m_dbLock) |
1790 | { | 1795 | { |
diff --git a/OpenSim/Data/MySQL/MySQLUserAccountData.cs b/OpenSim/Data/MySQL/MySQLUserAccountData.cs index aa69d68..a18ac66 100644 --- a/OpenSim/Data/MySQL/MySQLUserAccountData.cs +++ b/OpenSim/Data/MySQL/MySQLUserAccountData.cs | |||
@@ -46,17 +46,21 @@ namespace OpenSim.Data.MySQL | |||
46 | { | 46 | { |
47 | string[] words = query.Split(new char[] {' '}); | 47 | string[] words = query.Split(new char[] {' '}); |
48 | 48 | ||
49 | bool valid = false; | ||
50 | |||
49 | for (int i = 0 ; i < words.Length ; i++) | 51 | for (int i = 0 ; i < words.Length ; i++) |
50 | { | 52 | { |
51 | if (words[i].Length < 3) | 53 | if (words[i].Length > 2) |
52 | { | 54 | valid = true; |
53 | if (i != words.Length - 1) | 55 | // if (words[i].Length < 3) |
54 | Array.Copy(words, i + 1, words, i, words.Length - i - 1); | 56 | // { |
55 | Array.Resize(ref words, words.Length - 1); | 57 | // if (i != words.Length - 1) |
56 | } | 58 | // Array.Copy(words, i + 1, words, i, words.Length - i - 1); |
59 | // Array.Resize(ref words, words.Length - 1); | ||
60 | // } | ||
57 | } | 61 | } |
58 | 62 | ||
59 | if (words.Length == 0) | 63 | if ((!valid) || words.Length == 0) |
60 | return new UserAccountData[0]; | 64 | return new UserAccountData[0]; |
61 | 65 | ||
62 | if (words.Length > 2) | 66 | if (words.Length > 2) |
@@ -66,18 +70,33 @@ namespace OpenSim.Data.MySQL | |||
66 | 70 | ||
67 | if (words.Length == 1) | 71 | if (words.Length == 1) |
68 | { | 72 | { |
69 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search)", m_Realm); | 73 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?search or LastName like ?search) and active=1", m_Realm); |
70 | cmd.Parameters.AddWithValue("?search", "%" + words[0] + "%"); | 74 | cmd.Parameters.AddWithValue("?search", words[0] + "%"); |
71 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); | 75 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); |
72 | } | 76 | } |
73 | else | 77 | else |
74 | { | 78 | { |
75 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?searchFirst or LastName like ?searchLast)", m_Realm); | 79 | cmd.CommandText = String.Format("select * from {0} where (ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like ?searchFirst and LastName like ?searchLast) and active=1", m_Realm); |
76 | cmd.Parameters.AddWithValue("?searchFirst", "%" + words[0] + "%"); | 80 | cmd.Parameters.AddWithValue("?searchFirst", words[0] + "%"); |
77 | cmd.Parameters.AddWithValue("?searchLast", "%" + words[1] + "%"); | 81 | cmd.Parameters.AddWithValue("?searchLast", words[1] + "%"); |
82 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); | ||
83 | } | ||
84 | |||
85 | return DoQuery(cmd); | ||
86 | } | ||
87 | |||
88 | public UserAccountData[] GetUsersWhere(UUID scopeID, string where) | ||
89 | { | ||
90 | MySqlCommand cmd = new MySqlCommand(); | ||
91 | |||
92 | if (scopeID != UUID.Zero) | ||
93 | { | ||
94 | where = "(ScopeID=?ScopeID or ScopeID='00000000-0000-0000-0000-000000000000') and (" + where + ")"; | ||
78 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); | 95 | cmd.Parameters.AddWithValue("?ScopeID", scopeID.ToString()); |
79 | } | 96 | } |
80 | 97 | ||
98 | cmd.CommandText = String.Format("select * from {0} where " + where, m_Realm); | ||
99 | |||
81 | return DoQuery(cmd); | 100 | return DoQuery(cmd); |
82 | } | 101 | } |
83 | } | 102 | } |
diff --git a/OpenSim/Data/MySQL/Resources/RegionStore.migrations b/OpenSim/Data/MySQL/Resources/RegionStore.migrations index 987625b..c2b130c 100644 --- a/OpenSim/Data/MySQL/Resources/RegionStore.migrations +++ b/OpenSim/Data/MySQL/Resources/RegionStore.migrations | |||
@@ -717,7 +717,7 @@ ALTER TABLE regionsettings ADD COLUMN loaded_creation_datetime int unsigned NOT | |||
717 | 717 | ||
718 | COMMIT; | 718 | COMMIT; |
719 | 719 | ||
720 | :VERSION 32 | 720 | :VERSION 32 #--------------------- |
721 | 721 | ||
722 | BEGIN; | 722 | BEGIN; |
723 | CREATE TABLE `regionwindlight` ( | 723 | CREATE TABLE `regionwindlight` ( |