aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAdam Frisby2009-11-23 16:08:06 +1100
committerAdam Frisby2009-11-23 16:08:06 +1100
commit4973c057eb4566b97fcf1d56c3b8814516275d38 (patch)
tree28389cda6819674ef00d98f088cddcea613165aa
parent* Request from Adam to add InfoFormat logging to the InventoryService for whe... (diff)
downloadopensim-SC-4973c057eb4566b97fcf1d56c3b8814516275d38.zip
opensim-SC-4973c057eb4566b97fcf1d56c3b8814516275d38.tar.gz
opensim-SC-4973c057eb4566b97fcf1d56c3b8814516275d38.tar.bz2
opensim-SC-4973c057eb4566b97fcf1d56c3b8814516275d38.tar.xz
* Adds a modicum of additional checking to the Inventory Service (MySQL only)
* Enable "opengridmode=true" in your Inventory Connector (where the mysql connection strings are) to enable if you are running a 'wide-open-grid'. * More comprehensive rollback support being implemented, should be available later today.
-rw-r--r--OpenSim/Data/MySQL/MySQLInventoryData.cs27
1 files changed, 22 insertions, 5 deletions
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs
index 0eecf06..063dd91 100644
--- a/OpenSim/Data/MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs
@@ -48,6 +48,10 @@ namespace OpenSim.Data.MySQL
48 /// </summary> 48 /// </summary>
49 private MySQLManager database; 49 private MySQLManager database;
50 50
51 private bool rollbackStore = false;
52 private bool opengridmode = false;
53 private string rollbackDir = "";
54
51 public void Initialise() 55 public void Initialise()
52 { 56 {
53 m_log.Info("[MySQLInventoryData]: " + Name + " cannot be default-initialized!"); 57 m_log.Info("[MySQLInventoryData]: " + Name + " cannot be default-initialized!");
@@ -82,6 +86,10 @@ namespace OpenSim.Data.MySQL
82 string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling"); 86 string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
83 string settingPort = GridDataMySqlFile.ParseFileReadValue("port"); 87 string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
84 88
89 rollbackDir = GridDataMySqlFile.ParseFileReadValue("rollbackdir");
90 rollbackStore = GridDataMySqlFile.ParseFileReadValue("rollback") == "true";
91 opengridmode = GridDataMySqlFile.ParseFileReadValue("opengridmode") == "true";
92
85 database = 93 database =
86 new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, 94 new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
87 settingPort); 95 settingPort);
@@ -851,16 +859,25 @@ namespace OpenSim.Data.MySQL
851 { 859 {
852 List<InventoryFolderBase> subFolders = getFolderHierarchy(folderID); 860 List<InventoryFolderBase> subFolders = getFolderHierarchy(folderID);
853 861
854 //Delete all sub-folders 862 // Dont delete in OGM - makes for easier restores if someone sends a malcious command. (just restore the folder entry)
855 foreach (InventoryFolderBase f in subFolders) 863 if (opengridmode == false)
856 { 864 {
857 deleteOneFolder(f.ID); 865 //Delete all sub-folders
858 deleteItemsInFolder(f.ID); 866 foreach (InventoryFolderBase f in subFolders)
867 {
868 deleteOneFolder(f.ID);
869 deleteItemsInFolder(f.ID);
870 }
859 } 871 }
860 872
861 //Delete the actual row 873 //Delete the actual row
862 deleteOneFolder(folderID); 874 deleteOneFolder(folderID);
863 deleteItemsInFolder(folderID); 875
876 // Just delete the folder context in OGM
877 if (opengridmode == false)
878 {
879 deleteItemsInFolder(folderID);
880 }
864 } 881 }
865 882
866 public List<InventoryItemBase> fetchActiveGestures(UUID avatarID) 883 public List<InventoryItemBase> fetchActiveGestures(UUID avatarID)