mirror of
https://github.com/opensim/opensim.git
synced 2026-08-12 12:25:42 +08:00
fix merge
This commit is contained in:
@@ -60,9 +60,57 @@ namespace OpenSim.Framework
|
||||
str += "C";
|
||||
if ((perms & (int)PermissionMask.Transfer) != 0)
|
||||
str += "T";
|
||||
if ((perms & (int)PermissionMask.Export) != 0)
|
||||
str += "X";
|
||||
if (str == "")
|
||||
str = ".";
|
||||
return str;
|
||||
}
|
||||
|
||||
public static void ApplyFoldedPermissions(uint foldedSourcePerms, ref uint targetPerms)
|
||||
{
|
||||
uint folded = foldedSourcePerms & (uint)PermissionMask.FoldedMask;
|
||||
if(folded == 0 || folded == (uint)PermissionMask.FoldedMask) // invalid we need to ignore, or nothing to do
|
||||
return;
|
||||
|
||||
folded <<= (int)PermissionMask.FoldingShift;
|
||||
folded |= ~(uint)PermissionMask.UnfoldedMask;
|
||||
|
||||
uint tmp = targetPerms;
|
||||
tmp &= folded;
|
||||
targetPerms = tmp;
|
||||
}
|
||||
|
||||
// do not touch MOD
|
||||
public static void ApplyNoModFoldedPermissions(uint foldedSourcePerms, ref uint target)
|
||||
{
|
||||
uint folded = foldedSourcePerms & (uint)PermissionMask.FoldedMask;
|
||||
if(folded == 0 || folded == (uint)PermissionMask.FoldedMask) // invalid we need to ignore, or nothing to do
|
||||
return;
|
||||
|
||||
folded <<= (int)PermissionMask.FoldingShift;
|
||||
folded |= (~(uint)PermissionMask.UnfoldedMask | (uint)PermissionMask.Modify);
|
||||
|
||||
uint tmp = target;
|
||||
tmp &= folded;
|
||||
target = tmp;
|
||||
}
|
||||
|
||||
public static uint FixAndFoldPermissions(uint perms)
|
||||
{
|
||||
uint tmp = perms;
|
||||
|
||||
// C & T rule
|
||||
if((tmp & (uint)(PermissionMask.Copy | PermissionMask.Transfer)) == 0)
|
||||
tmp |= (uint)PermissionMask.Transfer;
|
||||
|
||||
// unlock
|
||||
tmp |= (uint)PermissionMask.Move;
|
||||
|
||||
tmp &= ~(uint)PermissionMask.FoldedMask;
|
||||
tmp |= ((tmp >> (int)PermissionMask.FoldingShift) & (uint)PermissionMask.FoldedMask);
|
||||
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,8 +191,7 @@ namespace OpenSim.Framework.Servers
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
m_log.FatalFormat("Fatal error: {0}",
|
||||
(e.Message == null || e.Message == String.Empty) ? "Unknown reason":e.Message );
|
||||
m_log.Fatal("Fatal error: " + e.ToString());
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,9 @@ namespace OpenSim.Framework
|
||||
|
||||
FoldedMask = 0x0f,
|
||||
|
||||
//
|
||||
FoldingShift = 13 , // number of bit shifts from normal perm to folded or back (same as Transfer shift below)
|
||||
// when doing as a block
|
||||
|
||||
Transfer = 1 << 13, // 0x02000
|
||||
Modify = 1 << 14, // 0x04000
|
||||
Copy = 1 << 15, // 0x08000
|
||||
@@ -90,7 +92,8 @@ namespace OpenSim.Framework
|
||||
// explicitly given
|
||||
All = 0x8e000,
|
||||
AllAndExport = 0x9e000,
|
||||
AllEffective = 0x9e000
|
||||
AllEffective = 0x9e000,
|
||||
UnfoldedMask = 0x1e000
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user