mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
s3:smbd: add file_fsp_smb2()
metze
This commit is contained in:
parent
72564052b6
commit
2a804a359a
@ -581,6 +581,49 @@ files_struct *file_fsp(struct smb_request *req, uint16 fid)
|
||||
return fsp;
|
||||
}
|
||||
|
||||
struct files_struct *file_fsp_smb2(struct smbd_smb2_request *smb2req,
|
||||
uint64_t persistent_id,
|
||||
uint64_t volatile_id)
|
||||
{
|
||||
struct files_struct *fsp;
|
||||
|
||||
if (smb2req->compat_chain_fsp != NULL) {
|
||||
return smb2req->compat_chain_fsp;
|
||||
}
|
||||
|
||||
if (persistent_id != volatile_id) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (volatile_id > UINT16_MAX) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
fsp = file_fnum(smb2req->sconn, (uint16_t)volatile_id);
|
||||
if (fsp == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (smb2req->tcon == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (smb2req->tcon->compat_conn != fsp->conn) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (smb2req->session == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (smb2req->session->vuid != fsp->vuid) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
smb2req->compat_chain_fsp = fsp;
|
||||
return fsp;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Duplicate the file handle part for a DOS or FCB open.
|
||||
****************************************************************************/
|
||||
|
@ -387,6 +387,9 @@ bool file_find_subpath(files_struct *dir_fsp);
|
||||
void file_sync_all(connection_struct *conn);
|
||||
void file_free(struct smb_request *req, files_struct *fsp);
|
||||
files_struct *file_fsp(struct smb_request *req, uint16 fid);
|
||||
struct files_struct *file_fsp_smb2(struct smbd_smb2_request *smb2req,
|
||||
uint64_t persistent_id,
|
||||
uint64_t volatile_id);
|
||||
NTSTATUS dup_file_fsp(struct smb_request *req, files_struct *from,
|
||||
uint32 access_mask, uint32 share_access,
|
||||
uint32 create_options, files_struct *to);
|
||||
|
Loading…
x
Reference in New Issue
Block a user