diff options
author | Adam Frisby | 2009-11-23 16:08:06 +1100 |
---|---|---|
committer | Adam Frisby | 2009-11-23 16:08:06 +1100 |
commit | 4973c057eb4566b97fcf1d56c3b8814516275d38 (patch) | |
tree | 28389cda6819674ef00d98f088cddcea613165aa /OpenSim/Data/MySQL | |
parent | * Request from Adam to add InfoFormat logging to the InventoryService for whe... (diff) | |
download | opensim-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.
Diffstat (limited to 'OpenSim/Data/MySQL')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLInventoryData.cs | 27 |
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) |