mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
r15814: add SMB2 Lock interface structure
metze
This commit is contained in:
parent
6e37084965
commit
8f1850ef65
@ -1781,7 +1781,12 @@ union smb_write {
|
||||
};
|
||||
|
||||
|
||||
enum smb_lock_level {RAW_LOCK_LOCK, RAW_LOCK_UNLOCK, RAW_LOCK_LOCKX};
|
||||
enum smb_lock_level {
|
||||
RAW_LOCK_LOCK,
|
||||
RAW_LOCK_UNLOCK,
|
||||
RAW_LOCK_LOCKX,
|
||||
RAW_LOCK_SMB2
|
||||
};
|
||||
|
||||
/* the generic interface is defined to be equal to the lockingX interface */
|
||||
#define RAW_LOCK_GENERIC RAW_LOCK_LOCKX
|
||||
@ -1815,6 +1820,33 @@ union smb_lock {
|
||||
uint32_t offset;
|
||||
} in;
|
||||
} lock, unlock;
|
||||
|
||||
/* SMB2 Lock */
|
||||
struct smb2_lock {
|
||||
enum smb_lock_level level;
|
||||
struct {
|
||||
union smb_handle file;
|
||||
|
||||
/* static body buffer 48 (0x30) bytes */
|
||||
/* uint16_t buffer_code; 0x30 */
|
||||
uint16_t unknown1; /* must be 0x0001 */
|
||||
uint32_t unknown2;
|
||||
/* struct smb2_handle handle; */
|
||||
uint64_t offset;
|
||||
uint64_t count;
|
||||
uint32_t unknown5;
|
||||
#define SMB2_LOCK_FLAG_NONE 0x00000000
|
||||
#define SMB2_LOCK_FLAG_EXCLUSIV 0x00000002
|
||||
#define SMB2_LOCK_FLAG_UNLOCK 0x00000004
|
||||
#define SMB2_LOCK_FLAGS_MASK 0x00000006
|
||||
uint32_t flags;
|
||||
} in;
|
||||
struct {
|
||||
/* static body buffer 4 (0x04) bytes */
|
||||
/* uint16_t buffer_code; 0x04 */
|
||||
uint16_t unknown1;
|
||||
} out;
|
||||
} smb2;
|
||||
};
|
||||
|
||||
|
||||
|
@ -802,6 +802,8 @@ struct smbcli_request *smb_raw_lock_send(struct smbcli_tree *tree, union smb_loc
|
||||
}
|
||||
}
|
||||
}
|
||||
case RAW_LOCK_SMB2:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!smbcli_request_send(req)) {
|
||||
|
@ -969,6 +969,9 @@ _PUBLIC_ NTSTATUS ntvfs_map_lock(struct ntvfs_module_context *ntvfs,
|
||||
lck2->generic.in.ulock_cnt = 1;
|
||||
lck2->generic.in.lock_cnt = 0;
|
||||
break;
|
||||
|
||||
case RAW_LOCK_SMB2:
|
||||
return NT_STATUS_INVALID_LEVEL;
|
||||
}
|
||||
|
||||
lck2->generic.level = RAW_LOCK_GENERIC;
|
||||
|
Loading…
Reference in New Issue
Block a user