diff options
Diffstat (limited to 'OpenSim/Data')
-rw-r--r-- | OpenSim/Data/MSSQL/MSSQLSimulationData.cs | 2 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLSimulationData.cs | 7 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteSimulationData.cs | 14 |
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 | ||