aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLSimulationData.cs2
-rw-r--r--OpenSim/Data/MySQL/MySQLSimulationData.cs7
-rw-r--r--OpenSim/Data/SQLite/SQLiteSimulationData.cs14
3 files changed, 7 insertions, 16 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLSimulationData.cs b/OpenSim/Data/MSSQL/MSSQLSimulationData.cs
index f41f60c..8adddc9 100644
--- a/OpenSim/Data/MSSQL/MSSQLSimulationData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLSimulationData.cs
@@ -576,7 +576,7 @@ ELSE
576 /// <param name="regionID">regionID.</param> 576 /// <param name="regionID">regionID.</param>
577 public void StoreTerrain(double[,] terrain, UUID regionID) 577 public void StoreTerrain(double[,] terrain, UUID regionID)
578 { 578 {
579 int revision = Util.UnixTimeSinceEpoch(); 579 int revision = (int)DBTerrainRevision.Legacy256;
580 580
581 //Delete old terrain map 581 //Delete old terrain map
582 string sql = "delete from terrain where RegionUUID=@RegionUUID"; 582 string sql = "delete from terrain where RegionUUID=@RegionUUID";
diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs
index b03a904..5751dc8 100644
--- a/OpenSim/Data/MySQL/MySQLSimulationData.cs
+++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs
@@ -575,6 +575,7 @@ namespace OpenSim.Data.MySQL
575 public void StoreTerrain(double[,] ter, UUID regionID) 575 public void StoreTerrain(double[,] ter, UUID regionID)
576 { 576 {
577 m_log.Info("[REGION DB]: Storing terrain"); 577 m_log.Info("[REGION DB]: Storing terrain");
578 int revision = (int)DBTerrainRevision.Legacy256;
578 579
579 lock (m_dbLock) 580 lock (m_dbLock)
580 { 581 {
@@ -589,10 +590,10 @@ namespace OpenSim.Data.MySQL
589 590
590 ExecuteNonQuery(cmd); 591 ExecuteNonQuery(cmd);
591 592
592 cmd.CommandText = "insert into terrain (RegionUUID, " + 593 cmd.CommandText = "insert into terrain (RegionUUID, Revision, Heightfield)"
593 "Revision, Heightfield) values (?RegionUUID, " + 594 + "values (?RegionUUID, ?Revision, ?Heightfield)";
594 "1, ?Heightfield)";
595 595
596 cmd.Parameters.AddWithValue("Revision", revision);
596 cmd.Parameters.AddWithValue("Heightfield", SerializeTerrain(ter)); 597 cmd.Parameters.AddWithValue("Heightfield", SerializeTerrain(ter));
597 598
598 ExecuteNonQuery(cmd); 599 ExecuteNonQuery(cmd);
diff --git a/OpenSim/Data/SQLite/SQLiteSimulationData.cs b/OpenSim/Data/SQLite/SQLiteSimulationData.cs
index d938b6b..b70af6b 100644
--- a/OpenSim/Data/SQLite/SQLiteSimulationData.cs
+++ b/OpenSim/Data/SQLite/SQLiteSimulationData.cs
@@ -828,22 +828,12 @@ namespace OpenSim.Data.SQLite
828 { 828 {
829 lock (ds) 829 lock (ds)
830 { 830 {
831 int revision = Util.UnixTimeSinceEpoch(); 831 int revision = (int)DBTerrainRevision.Legacy256;
832
833 // This is added to get rid of the infinitely growing
834 // terrain databases which negatively impact on SQLite
835 // over time. Before reenabling this feature there
836 // needs to be a limitter put on the number of
837 // revisions in the database, as this old
838 // implementation is a DOS attack waiting to happen.
839 832
840 using ( 833 using (
841 SqliteCommand cmd = 834 SqliteCommand cmd = new SqliteCommand("delete from terrain where RegionUUID=:RegionUUID", m_conn))
842 new SqliteCommand("delete from terrain where RegionUUID=:RegionUUID and Revision <= :Revision",
843 m_conn))
844 { 835 {
845 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", regionID.ToString())); 836 cmd.Parameters.Add(new SqliteParameter(":RegionUUID", regionID.ToString()));
846 cmd.Parameters.Add(new SqliteParameter(":Revision", revision));
847 cmd.ExecuteNonQuery(); 837 cmd.ExecuteNonQuery();
848 } 838 }
849 839