From 488165b8b91db607e4bbcdd57a65a1f82ea76a47 Mon Sep 17 00:00:00 2001 From: Tal Aloni Date: Thu, 31 Aug 2017 14:01:10 +0300 Subject: [PATCH] SMB2: LockElement: Added SharedLock / ExclusiveLock / Unlock / FailImmediately properties --- SMBLibrary/SMB2/Structures/LockElement.cs | 76 +++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/SMBLibrary/SMB2/Structures/LockElement.cs b/SMBLibrary/SMB2/Structures/LockElement.cs index 5bc9790..a0e8277 100644 --- a/SMBLibrary/SMB2/Structures/LockElement.cs +++ b/SMBLibrary/SMB2/Structures/LockElement.cs @@ -35,6 +35,82 @@ namespace SMBLibrary.SMB2 LittleEndianWriter.WriteUInt64(buffer, offset + 20, Reserved); } + public bool SharedLock + { + get + { + return (Flags & LockFlags.SharedLock) > 0; + } + set + { + if (value) + { + Flags |= LockFlags.SharedLock; + } + else + { + Flags &= ~LockFlags.SharedLock; + } + } + } + + public bool ExclusiveLock + { + get + { + return (Flags & LockFlags.ExclusiveLock) > 0; + } + set + { + if (value) + { + Flags |= LockFlags.ExclusiveLock; + } + else + { + Flags &= ~LockFlags.ExclusiveLock; + } + } + } + + public bool Unlock + { + get + { + return (Flags & LockFlags.Unlock) > 0; + } + set + { + if (value) + { + Flags |= LockFlags.Unlock; + } + else + { + Flags &= ~LockFlags.Unlock; + } + } + } + + public bool FailImmediately + { + get + { + return (Flags & LockFlags.FailImmediately) > 0; + } + set + { + if (value) + { + Flags |= LockFlags.FailImmediately; + } + else + { + Flags &= ~LockFlags.FailImmediately; + } + } + } + public static List ReadLockList(byte[] buffer, int offset, int lockCount) { List result = new List();