diff options
Diffstat (limited to 'source4/ntvfs/ntvfs_generic.c')
-rw-r--r-- | source4/ntvfs/ntvfs_generic.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source4/ntvfs/ntvfs_generic.c b/source4/ntvfs/ntvfs_generic.c index a4cc0ff396..8b80e9db80 100644 --- a/source4/ntvfs/ntvfs_generic.c +++ b/source4/ntvfs/ntvfs_generic.c @@ -205,6 +205,22 @@ static NTSTATUS ntvfs_map_open_finish(struct ntvfs_module_context *ntvfs, NT_STATUS_HAVE_NO_MEMORY(io->ctemp.out.name); break; + case RAW_OPEN_SMB2: + io->smb2.out.file.ntvfs = io2->generic.out.file.ntvfs; + io->smb2.out.oplock_flags = 0; + io->smb2.out.create_action = io2->generic.out.create_action; + io->smb2.out.create_time = io2->generic.out.create_time; + io->smb2.out.access_time = io2->generic.out.access_time; + io->smb2.out.write_time = io2->generic.out.write_time; + io->smb2.out.change_time = io2->generic.out.change_time; + io->smb2.out.alloc_size = io2->generic.out.alloc_size; + io->smb2.out.size = io2->generic.out.size; + /*io->smb2.out.file_attr = io2->generic.out.attrib; would this be correct? */ + io->smb2.out.file_attr = 0; + io->smb2.out._pad = 0; + io->smb2.out.blob = data_blob(NULL, 0); + break; + default: return NT_STATUS_INVALID_LEVEL; } @@ -467,6 +483,22 @@ _PUBLIC_ NTSTATUS ntvfs_map_open(struct ntvfs_module_context *ntvfs, NTCREATEX_SHARE_ACCESS_WRITE; status = ntvfs->ops->open(ntvfs, req, io2); break; + case RAW_OPEN_SMB2: + io2->generic.in.flags = 0; + io2->generic.in.root_fid = 0; + io2->generic.in.access_mask = io->smb2.in.access_mask; + io2->generic.in.alloc_size = 0; + io2->generic.in.file_attr = io->smb2.in.file_attr; + io2->generic.in.share_access = io->smb2.in.share_access; + io2->generic.in.open_disposition= io->smb2.in.open_disposition; + io2->generic.in.create_options = io->smb2.in.create_options; + io2->generic.in.impersonation = io->smb2.in.impersonation; + io2->generic.in.security_flags = 0; + io2->generic.in.fname = io->smb2.in.fname; + io2->generic.in.sec_desc = NULL; + io2->generic.in.ea_list = NULL; + status = ntvfs->ops->open(ntvfs, req, io2); + break; default: status = NT_STATUS_INVALID_LEVEL; |