* 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.0.6.8-post-fixes
parent
7ecd43864f
commit
4973c057eb
|
@ -48,6 +48,10 @@ namespace OpenSim.Data.MySQL
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private MySQLManager database;
|
private MySQLManager database;
|
||||||
|
|
||||||
|
private bool rollbackStore = false;
|
||||||
|
private bool opengridmode = false;
|
||||||
|
private string rollbackDir = "";
|
||||||
|
|
||||||
public void Initialise()
|
public void Initialise()
|
||||||
{
|
{
|
||||||
m_log.Info("[MySQLInventoryData]: " + Name + " cannot be default-initialized!");
|
m_log.Info("[MySQLInventoryData]: " + Name + " cannot be default-initialized!");
|
||||||
|
@ -82,6 +86,10 @@ namespace OpenSim.Data.MySQL
|
||||||
string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
|
string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
|
||||||
string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
|
string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
|
||||||
|
|
||||||
|
rollbackDir = GridDataMySqlFile.ParseFileReadValue("rollbackdir");
|
||||||
|
rollbackStore = GridDataMySqlFile.ParseFileReadValue("rollback") == "true";
|
||||||
|
opengridmode = GridDataMySqlFile.ParseFileReadValue("opengridmode") == "true";
|
||||||
|
|
||||||
database =
|
database =
|
||||||
new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
|
new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling,
|
||||||
settingPort);
|
settingPort);
|
||||||
|
@ -851,16 +859,25 @@ namespace OpenSim.Data.MySQL
|
||||||
{
|
{
|
||||||
List<InventoryFolderBase> subFolders = getFolderHierarchy(folderID);
|
List<InventoryFolderBase> subFolders = getFolderHierarchy(folderID);
|
||||||
|
|
||||||
//Delete all sub-folders
|
// Dont delete in OGM - makes for easier restores if someone sends a malcious command. (just restore the folder entry)
|
||||||
foreach (InventoryFolderBase f in subFolders)
|
if (opengridmode == false)
|
||||||
{
|
{
|
||||||
deleteOneFolder(f.ID);
|
//Delete all sub-folders
|
||||||
deleteItemsInFolder(f.ID);
|
foreach (InventoryFolderBase f in subFolders)
|
||||||
|
{
|
||||||
|
deleteOneFolder(f.ID);
|
||||||
|
deleteItemsInFolder(f.ID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Delete the actual row
|
//Delete the actual row
|
||||||
deleteOneFolder(folderID);
|
deleteOneFolder(folderID);
|
||||||
deleteItemsInFolder(folderID);
|
|
||||||
|
// Just delete the folder context in OGM
|
||||||
|
if (opengridmode == false)
|
||||||
|
{
|
||||||
|
deleteItemsInFolder(folderID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<InventoryItemBase> fetchActiveGestures(UUID avatarID)
|
public List<InventoryItemBase> fetchActiveGestures(UUID avatarID)
|
||||||
|
|
Loading…
Reference in New Issue