r15752: - add generic mapping for RAW_OPEN_SMB2
authorStefan Metzmacher <metze@samba.org>
Sat, 20 May 2006 16:53:44 +0000 (16:53 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:08:14 +0000 (14:08 -0500)
metze

source/ntvfs/ntvfs_generic.c

index a4cc0ff3964de05f955101711cf5a65fb39b7d4e..8b80e9db803cea25764231906b94fb4001f70812 100644 (file)
@@ -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;