From 70b0e07d1ea99f8bd88f2be12bf9b53a39187f60 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 22 Mar 2010 18:49:56 +0000 Subject: Remove the reading of estate_settings.xml and the associated processing of defaults. Adding code to facilitate estate creation / managemment as part of first time start up --- OpenSim/Data/MSSQL/MSSQLEstateData.cs | 23 ++--------------------- OpenSim/Data/MySQL/MySQLEstateData.cs | 18 +++++------------- OpenSim/Data/SQLite/SQLiteEstateData.cs | 20 ++------------------ OpenSim/Data/Tests/BasicEstateTest.cs | 24 ++++++++++++------------ 4 files changed, 21 insertions(+), 64 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/MSSQL/MSSQLEstateData.cs b/OpenSim/Data/MSSQL/MSSQLEstateData.cs index 6f6f076..1624f56 100644 --- a/OpenSim/Data/MSSQL/MSSQLEstateData.cs +++ b/OpenSim/Data/MSSQL/MSSQLEstateData.cs @@ -83,7 +83,7 @@ namespace OpenSim.Data.MSSQL /// /// region ID. /// - public EstateSettings LoadEstateSettings(UUID regionID) + public EstateSettings LoadEstateSettings(UUID regionID, bool create) { EstateSettings es = new EstateSettings(); @@ -127,7 +127,7 @@ namespace OpenSim.Data.MSSQL } - if (insertEstate) + if (insertEstate && create) { List names = new List(FieldList); @@ -173,25 +173,6 @@ namespace OpenSim.Data.MSSQL } } - // Munge and transfer the ban list - - sql = string.Format("insert into estateban select {0}, bannedUUID, bannedIp, bannedIpHostMask, '' from regionban where regionban.regionUUID = @UUID", es.EstateID); - using (SqlConnection conn = new SqlConnection(m_connectionString)) - using (SqlCommand cmd = new SqlCommand(sql, conn)) - { - - cmd.Parameters.Add(_Database.CreateParameter("@UUID", regionID)); - try - { - conn.Open(); - cmd.ExecuteNonQuery(); - } - catch (Exception) - { - _Log.Debug("[ESTATE DB]: Error setting up estateban from regionban"); - } - } - //TODO check if this is needed?? es.Save(); } diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs index 2eae2d8..e94dcda 100644 --- a/OpenSim/Data/MySQL/MySQLEstateData.cs +++ b/OpenSim/Data/MySQL/MySQLEstateData.cs @@ -121,7 +121,7 @@ namespace OpenSim.Data.MySQL } } - public EstateSettings LoadEstateSettings(UUID regionID) + public EstateSettings LoadEstateSettings(UUID regionID, bool create) { EstateSettings es = new EstateSettings(); es.OnSave += StoreEstateSettings; @@ -129,12 +129,12 @@ namespace OpenSim.Data.MySQL string sql = "select estate_settings." + String.Join(",estate_settings.", FieldList) + " from estate_map left join estate_settings on estate_map.EstateID = estate_settings.EstateID where estate_settings.EstateID is not null and RegionID = ?RegionID"; - bool migration = true; - using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) { dbcon.Open(); + bool found = false; + using (MySqlCommand cmd = dbcon.CreateCommand()) { cmd.CommandText = sql; @@ -144,7 +144,7 @@ namespace OpenSim.Data.MySQL { if (r.Read()) { - migration = false; + found = true; foreach (string name in FieldList) { @@ -172,7 +172,7 @@ namespace OpenSim.Data.MySQL } } - if (migration) + if (!found && create) { // Migration case List names = new List(FieldList); @@ -220,14 +220,6 @@ namespace OpenSim.Data.MySQL try { cmd.ExecuteNonQuery(); } catch (Exception) { } - // Munge and transfer the ban list - cmd.Parameters.Clear(); - cmd.CommandText = "insert into estateban select " + es.EstateID.ToString() + ", bannedUUID, bannedIp, bannedIpHostMask, '' from regionban where regionban.regionUUID = ?UUID"; - cmd.Parameters.AddWithValue("?UUID", regionID.ToString()); - - try { cmd.ExecuteNonQuery(); } - catch (Exception) { } - es.Save(); } } diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs index 1be99ee..4a447d2 100644 --- a/OpenSim/Data/SQLite/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs @@ -80,7 +80,7 @@ namespace OpenSim.Data.SQLite get { return new List(m_FieldMap.Keys).ToArray(); } } - public EstateSettings LoadEstateSettings(UUID regionID) + public EstateSettings LoadEstateSettings(UUID regionID, bool create) { EstateSettings es = new EstateSettings(); es.OnSave += StoreEstateSettings; @@ -120,10 +120,8 @@ namespace OpenSim.Data.SQLite } r.Close(); } - else + else if (create) { - // Migration case - // r.Close(); List names = new List(FieldList); @@ -176,20 +174,6 @@ namespace OpenSim.Data.SQLite { } - // Munge and transfer the ban list - // - cmd.Parameters.Clear(); - cmd.CommandText = "insert into estateban select "+es.EstateID.ToString()+", bannedUUID, bannedIp, bannedIpHostMask, '' from regionban where regionban.regionUUID = :UUID"; - cmd.Parameters.Add(":UUID", regionID.ToString()); - - try - { - cmd.ExecuteNonQuery(); - } - catch (Exception) - { - } - es.Save(); } diff --git a/OpenSim/Data/Tests/BasicEstateTest.cs b/OpenSim/Data/Tests/BasicEstateTest.cs index 907bb38..d14d405 100644 --- a/OpenSim/Data/Tests/BasicEstateTest.cs +++ b/OpenSim/Data/Tests/BasicEstateTest.cs @@ -158,7 +158,7 @@ namespace OpenSim.Data.Tests public void T012_EstateSettingsRandomStorage() { // Letting estate store generate rows to database for us - EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); new PropertyScrambler() .DontScramble(x=>x.EstateID) .Scramble(originalSettings); @@ -167,7 +167,7 @@ namespace OpenSim.Data.Tests db.StoreEstateSettings(originalSettings); // Loading settings to another instance variable. - EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID, true); // Checking that loaded values are correct. Assert.That(loadedSettings, Constraints.PropertyCompareConstraint(originalSettings)); @@ -177,7 +177,7 @@ namespace OpenSim.Data.Tests public void T020_EstateSettingsManagerList() { // Letting estate store generate rows to database for us - EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); originalSettings.EstateManagers = new UUID[] { MANAGER_ID_1, MANAGER_ID_2 }; @@ -185,7 +185,7 @@ namespace OpenSim.Data.Tests db.StoreEstateSettings(originalSettings); // Loading settings to another instance variable. - EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID, true); Assert.AreEqual(2, loadedSettings.EstateManagers.Length); Assert.AreEqual(MANAGER_ID_1, loadedSettings.EstateManagers[0]); @@ -196,7 +196,7 @@ namespace OpenSim.Data.Tests public void T021_EstateSettingsUserList() { // Letting estate store generate rows to database for us - EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); originalSettings.EstateAccess = new UUID[] { USER_ID_1, USER_ID_2 }; @@ -204,7 +204,7 @@ namespace OpenSim.Data.Tests db.StoreEstateSettings(originalSettings); // Loading settings to another instance variable. - EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID, true); Assert.AreEqual(2, loadedSettings.EstateAccess.Length); Assert.AreEqual(USER_ID_1, loadedSettings.EstateAccess[0]); @@ -215,7 +215,7 @@ namespace OpenSim.Data.Tests public void T022_EstateSettingsGroupList() { // Letting estate store generate rows to database for us - EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); originalSettings.EstateGroups = new UUID[] { GROUP_ID_1, GROUP_ID_2 }; @@ -223,7 +223,7 @@ namespace OpenSim.Data.Tests db.StoreEstateSettings(originalSettings); // Loading settings to another instance variable. - EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID, true); Assert.AreEqual(2, loadedSettings.EstateAccess.Length); Assert.AreEqual(GROUP_ID_1, loadedSettings.EstateGroups[0]); @@ -234,7 +234,7 @@ namespace OpenSim.Data.Tests public void T022_EstateSettingsBanList() { // Letting estate store generate rows to database for us - EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); EstateBan estateBan1 = new EstateBan(); estateBan1.BannedUserID = DataTestUtil.UUID_MIN; @@ -248,7 +248,7 @@ namespace OpenSim.Data.Tests db.StoreEstateSettings(originalSettings); // Loading settings to another instance variable. - EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID); + EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID, true); Assert.AreEqual(2, loadedSettings.EstateBans.Length); Assert.AreEqual(DataTestUtil.UUID_MIN, loadedSettings.EstateBans[0].BannedUserID); @@ -290,7 +290,7 @@ namespace OpenSim.Data.Tests { // Letting estate store generate rows to database for us - EstateSettings originalSettings = db.LoadEstateSettings(regionId); + EstateSettings originalSettings = db.LoadEstateSettings(regionId, true); SetEstateSettings( originalSettings, @@ -347,7 +347,7 @@ namespace OpenSim.Data.Tests db.StoreEstateSettings(originalSettings); // Loading settings to another instance variable. - EstateSettings loadedSettings = db.LoadEstateSettings(regionId); + EstateSettings loadedSettings = db.LoadEstateSettings(regionId, true); // Checking that loaded values are correct. ValidateEstateSettings( -- cgit v1.1 From 07a6b37001080ce197a4715776d100bcb9b2bb54 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 22 Mar 2010 20:38:27 +0000 Subject: Somehow the starting estate number in MySQL was lost. This adds a migration to start estates at 100. Existing databases having autcreated estates below 100 will see a gap in estate numbering. Other database implementors need to ensure that no estates with numbers less that 100 are autocreated, unless they are prepared to deal with the viewer's built-in notions of Linden Mainland --- OpenSim/Data/MySQL/Resources/032_RegionStore.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 OpenSim/Data/MySQL/Resources/032_RegionStore.sql (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/MySQL/Resources/032_RegionStore.sql b/OpenSim/Data/MySQL/Resources/032_RegionStore.sql new file mode 100644 index 0000000..dca5de7 --- /dev/null +++ b/OpenSim/Data/MySQL/Resources/032_RegionStore.sql @@ -0,0 +1,3 @@ +BEGIN; +ALTER TABLE estate_settings AUTO_INCREMENT = 100; +COMMIT; -- cgit v1.1 From dcf18689b9ab29d4ceb2348bb56fc1f77a7a8912 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 23 Mar 2010 02:05:56 +0000 Subject: First stage of the new interactive region creation. This will allow creation of a region and joining it to an existing estate or creating a new estate, as well as creating an estate owner if in standalone, and assigning estate owners. In Grid mode, existing users must be used. MySQL ONLY!!!! so far, as I can't develop or test for either SQLite or MSSQL. --- OpenSim/Data/MSSQL/MSSQLEstateData.cs | 25 +++++ OpenSim/Data/MySQL/MySQLEstateData.cs | 175 ++++++++++++++++++++++++-------- OpenSim/Data/SQLite/SQLiteEstateData.cs | 25 +++++ 3 files changed, 180 insertions(+), 45 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/MSSQL/MSSQLEstateData.cs b/OpenSim/Data/MSSQL/MSSQLEstateData.cs index 1624f56..474f706 100644 --- a/OpenSim/Data/MSSQL/MSSQLEstateData.cs +++ b/OpenSim/Data/MSSQL/MSSQLEstateData.cs @@ -346,6 +346,31 @@ namespace OpenSim.Data.MSSQL } } } + + public EstateSettings LoadEstateSettings(int estateID) + { + return new EstateSettings(); + } + + public List GetEstates(string search) + { + return new List(); + } + + public bool LinkRegion(UUID regionID, int estateID) + { + return false; + } + + public List GetRegions(int estateID) + { + return new List(); + } + + public bool DeleteEstate(int estateID) + { + return false; + } #endregion } } diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs index e94dcda..7fe1fcc 100644 --- a/OpenSim/Data/MySQL/MySQLEstateData.cs +++ b/OpenSim/Data/MySQL/MySQLEstateData.cs @@ -123,50 +123,57 @@ namespace OpenSim.Data.MySQL public EstateSettings LoadEstateSettings(UUID regionID, bool create) { - EstateSettings es = new EstateSettings(); - es.OnSave += StoreEstateSettings; - string sql = "select estate_settings." + String.Join(",estate_settings.", FieldList) + " from estate_map left join estate_settings on estate_map.EstateID = estate_settings.EstateID where estate_settings.EstateID is not null and RegionID = ?RegionID"; + using (MySqlCommand cmd = new MySqlCommand()) + { + cmd.CommandText = sql; + cmd.Parameters.AddWithValue("?RegionID", regionID.ToString()); + + return DoLoad(cmd, regionID, create); + } + } + + private EstateSettings DoLoad(MySqlCommand cmd, UUID regionID, bool create) + { + EstateSettings es = new EstateSettings(); + es.OnSave += StoreEstateSettings; + using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) { dbcon.Open(); + cmd.Connection = dbcon; + bool found = false; - using (MySqlCommand cmd = dbcon.CreateCommand()) + using (IDataReader r = cmd.ExecuteReader()) { - cmd.CommandText = sql; - cmd.Parameters.AddWithValue("?RegionID", regionID.ToString()); - - using (IDataReader r = cmd.ExecuteReader()) + if (r.Read()) { - if (r.Read()) - { - found = true; + found = true; - foreach (string name in FieldList) + foreach (string name in FieldList) + { + if (m_FieldMap[name].GetValue(es) is bool) { - if (m_FieldMap[name].GetValue(es) is bool) - { - int v = Convert.ToInt32(r[name]); - if (v != 0) - m_FieldMap[name].SetValue(es, true); - else - m_FieldMap[name].SetValue(es, false); - } - else if (m_FieldMap[name].GetValue(es) is UUID) - { - UUID uuid = UUID.Zero; - - UUID.TryParse(r[name].ToString(), out uuid); - m_FieldMap[name].SetValue(es, uuid); - } + int v = Convert.ToInt32(r[name]); + if (v != 0) + m_FieldMap[name].SetValue(es, true); else - { - m_FieldMap[name].SetValue(es, r[name]); - } + m_FieldMap[name].SetValue(es, false); + } + else if (m_FieldMap[name].GetValue(es) is UUID) + { + UUID uuid = UUID.Zero; + + UUID.TryParse(r[name].ToString(), out uuid); + m_FieldMap[name].SetValue(es, uuid); + } + else + { + m_FieldMap[name].SetValue(es, r[name]); } } } @@ -179,45 +186,45 @@ namespace OpenSim.Data.MySQL names.Remove("EstateID"); - sql = "insert into estate_settings (" + String.Join(",", names.ToArray()) + ") values ( ?" + String.Join(", ?", names.ToArray()) + ")"; + string sql = "insert into estate_settings (" + String.Join(",", names.ToArray()) + ") values ( ?" + String.Join(", ?", names.ToArray()) + ")"; - using (MySqlCommand cmd = dbcon.CreateCommand()) + using (MySqlCommand cmd2 = dbcon.CreateCommand()) { - cmd.CommandText = sql; - cmd.Parameters.Clear(); + cmd2.CommandText = sql; + cmd2.Parameters.Clear(); foreach (string name in FieldList) { if (m_FieldMap[name].GetValue(es) is bool) { if ((bool)m_FieldMap[name].GetValue(es)) - cmd.Parameters.AddWithValue("?" + name, "1"); + cmd2.Parameters.AddWithValue("?" + name, "1"); else - cmd.Parameters.AddWithValue("?" + name, "0"); + cmd2.Parameters.AddWithValue("?" + name, "0"); } else { - cmd.Parameters.AddWithValue("?" + name, m_FieldMap[name].GetValue(es).ToString()); + cmd2.Parameters.AddWithValue("?" + name, m_FieldMap[name].GetValue(es).ToString()); } } - cmd.ExecuteNonQuery(); + cmd2.ExecuteNonQuery(); - cmd.CommandText = "select LAST_INSERT_ID() as id"; - cmd.Parameters.Clear(); + cmd2.CommandText = "select LAST_INSERT_ID() as id"; + cmd2.Parameters.Clear(); - using (IDataReader r = cmd.ExecuteReader()) + using (IDataReader r = cmd2.ExecuteReader()) { r.Read(); es.EstateID = Convert.ToUInt32(r["id"]); } - cmd.CommandText = "insert into estate_map values (?RegionID, ?EstateID)"; - cmd.Parameters.AddWithValue("?RegionID", regionID.ToString()); - cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString()); + cmd2.CommandText = "insert into estate_map values (?RegionID, ?EstateID)"; + cmd2.Parameters.AddWithValue("?RegionID", regionID.ToString()); + cmd2.Parameters.AddWithValue("?EstateID", es.EstateID.ToString()); // This will throw on dupe key - try { cmd.ExecuteNonQuery(); } + try { cmd2.ExecuteNonQuery(); } catch (Exception) { } es.Save(); @@ -390,5 +397,83 @@ namespace OpenSim.Data.MySQL return uuids.ToArray(); } + + public EstateSettings LoadEstateSettings(int estateID) + { + using (MySqlCommand cmd = new MySqlCommand()) + { + string sql = "select estate_settings." + String.Join(",estate_settings.", FieldList) + " from estate_settings where EstateID = ?EstateID"; + + cmd.CommandText = sql; + cmd.Parameters.AddWithValue("?EstateID", estateID); + + return DoLoad(cmd, UUID.Zero, false); + } + } + + public List GetEstates(string search) + { + List result = new List(); + + using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) + { + dbcon.Open(); + + using (MySqlCommand cmd = dbcon.CreateCommand()) + { + cmd.CommandText = "select estateID from estate_settings where EstateName = ?EstateName"; + cmd.Parameters.AddWithValue("?EstateName", search); + + using (IDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + result.Add(Convert.ToInt32(reader["EstateID"])); + } + reader.Close(); + } + } + + + dbcon.Close(); + } + + return result; + } + + public bool LinkRegion(UUID regionID, int estateID) + { + using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) + { + dbcon.Open(); + + using (MySqlCommand cmd = dbcon.CreateCommand()) + { + cmd.CommandText = "insert into estate_map values (?RegionID, ?EstateID)"; + cmd.Parameters.AddWithValue("?RegionID", regionID); + cmd.Parameters.AddWithValue("?EstateID", estateID); + + if (cmd.ExecuteNonQuery() == 0) + { + dbcon.Close(); + return false; + } + } + + dbcon.Close(); + } + + return true; + } + + public List GetRegions(int estateID) + { + return new List(); + } + + public bool DeleteEstate(int estateID) + { + return false; + } } } diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs index 4a447d2..5b6135e 100644 --- a/OpenSim/Data/SQLite/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs @@ -320,5 +320,30 @@ namespace OpenSim.Data.SQLite return uuids.ToArray(); } + + public EstateSettings LoadEstateSettings(int estateID) + { + return new EstateSettings(); + } + + public List GetEstates(string search) + { + return new List(); + } + + public bool LinkRegion(UUID regionID, int estateID) + { + return false; + } + + public List GetRegions(int estateID) + { + return new List(); + } + + public bool DeleteEstate(int estateID) + { + return false; + } } } -- cgit v1.1 From 3fb73e4e266d7ac94281ec5a41a04a15c0b39ca7 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 23 Mar 2010 02:18:55 +0000 Subject: UNTESTED SQLite code to enable estate setup in interactive confguration --- OpenSim/Data/SQLite/SQLiteEstateData.cs | 52 ++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 7 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs index 5b6135e..bd6b776 100644 --- a/OpenSim/Data/SQLite/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs @@ -82,9 +82,6 @@ namespace OpenSim.Data.SQLite public EstateSettings LoadEstateSettings(UUID regionID, bool create) { - EstateSettings es = new EstateSettings(); - es.OnSave += StoreEstateSettings; - string sql = "select estate_settings."+String.Join(",estate_settings.", FieldList)+" from estate_map left join estate_settings on estate_map.EstateID = estate_settings.EstateID where estate_settings.EstateID is not null and RegionID = :RegionID"; SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); @@ -92,6 +89,14 @@ namespace OpenSim.Data.SQLite cmd.CommandText = sql; cmd.Parameters.Add(":RegionID", regionID.ToString()); + return DoLoad(cmd, regionID, create); + } + + private EstateSettings DoLoad(SqliteCommand cmd, UUID regionID, bool create) + { + EstateSettings es = new EstateSettings(); + es.OnSave += StoreEstateSettings; + IDataReader r = cmd.ExecuteReader(); if (r.Read()) @@ -128,7 +133,7 @@ namespace OpenSim.Data.SQLite names.Remove("EstateID"); - sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( :"+String.Join(", :", names.ToArray())+")"; + string sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( :"+String.Join(", :", names.ToArray())+")"; cmd.CommandText = sql; cmd.Parameters.Clear(); @@ -323,17 +328,50 @@ namespace OpenSim.Data.SQLite public EstateSettings LoadEstateSettings(int estateID) { - return new EstateSettings(); + string sql = "select estate_settings."+String.Join(",estate_settings.", FieldList)+" from estate_settings where estate_settings.EstateID :EstateID"; + + SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); + + cmd.CommandText = sql; + cmd.Parameters.Add(":EstateID", estateID.ToString()); + + return DoLoad(cmd, UUID.Zero, false); } public List GetEstates(string search) { - return new List(); + List result = new List(); + + string sql = "select EstateID from estate_settings where estate_settings.EstateName :EstateName"; + + SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); + + cmd.CommandText = sql; + cmd.Parameters.Add(":EstateName", search); + + IDataReader r = cmd.ExecuteReader(); + + while (r.Read()) + { + result.Add(Convert.ToInt32(r["EstateID"])); + } + r.Close(); + + return result; } public bool LinkRegion(UUID regionID, int estateID) { - return false; + SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); + + cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)"; + cmd.Parameters.Add(":RegionID", regionID.ToString()); + cmd.Parameters.Add(":EstateID", estateID.ToString()); + + if (cmd.ExecuteNonQuery() == 0) + return false; + + return true; } public List GetRegions(int estateID) -- cgit v1.1 From 87fe96ae2c48216d006a02ef22392f0838fba17f Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 26 Mar 2010 00:10:29 +0000 Subject: replace recent IModule.GetGroup() with better GetGroupRecord(string name) --- OpenSim/Data/Null/NullRegionData.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/Null/NullRegionData.cs b/OpenSim/Data/Null/NullRegionData.cs index 5b9898c..30ad747 100644 --- a/OpenSim/Data/Null/NullRegionData.cs +++ b/OpenSim/Data/Null/NullRegionData.cs @@ -40,7 +40,7 @@ namespace OpenSim.Data.Null { private static NullRegionData Instance = null; - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); +// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); Dictionary m_regionData = new Dictionary(); @@ -192,4 +192,4 @@ namespace OpenSim.Data.Null return ret; } } -} +} \ No newline at end of file -- cgit v1.1 From d6a64bf732ee88bdf9b62ad4f4303514f3215283 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Fri, 26 Mar 2010 13:50:25 -0700 Subject: * Catch exceptions thrown when MySQLEstateData.LinkRegion() is called. This won't fix the bug I'm seeing with regions not realizing they are already part of an estate, but it will fix the OpenSim crash if that situation ever comes up --- OpenSim/Data/MySQL/MySQLEstateData.cs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'OpenSim/Data') diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs index 7fe1fcc..d0c02f0 100644 --- a/OpenSim/Data/MySQL/MySQLEstateData.cs +++ b/OpenSim/Data/MySQL/MySQLEstateData.cs @@ -447,23 +447,29 @@ namespace OpenSim.Data.MySQL { dbcon.Open(); - using (MySqlCommand cmd = dbcon.CreateCommand()) + try { - cmd.CommandText = "insert into estate_map values (?RegionID, ?EstateID)"; - cmd.Parameters.AddWithValue("?RegionID", regionID); - cmd.Parameters.AddWithValue("?EstateID", estateID); - - if (cmd.ExecuteNonQuery() == 0) + using (MySqlCommand cmd = dbcon.CreateCommand()) { + cmd.CommandText = "insert into estate_map values (?RegionID, ?EstateID)"; + cmd.Parameters.AddWithValue("?RegionID", regionID); + cmd.Parameters.AddWithValue("?EstateID", estateID); + + int ret = cmd.ExecuteNonQuery(); dbcon.Close(); - return false; + + return (ret != 0); } } + catch (MySqlException ex) + { + m_log.Error("[REGION DB]: LinkRegion failed: " + ex.Message); + } dbcon.Close(); } - return true; + return false; } public List GetRegions(int estateID) -- cgit v1.1