diff options
author | Aravind Srinivasan <aravind.srinivasan@isilon.com> | 2009-10-01 16:13:37 -0700 |
---|---|---|
committer | Steven Danneman <steven.danneman@isilon.com> | 2009-10-01 17:14:53 -0700 |
commit | b529a1e98723c30f965f71fb1e9577edb23219d1 (patch) | |
tree | 963fbfdb4e39b5c7ea87926e483e460c21ce812f /source4/libcli/raw/interfaces.h | |
parent | 50db2902eebd143cea4e93bdc3771fcf2c5211f5 (diff) | |
download | samba-b529a1e98723c30f965f71fb1e9577edb23219d1.tar.gz samba-b529a1e98723c30f965f71fb1e9577edb23219d1.tar.bz2 samba-b529a1e98723c30f965f71fb1e9577edb23219d1.zip |
s4/torture: Add two new SMB RAW-OPEN tests
* Add chained NTCREATEX_READX test which first tries to open/read
a non-existant file failing on the open, then attempts the same
operation on a file that does exist, opening and reading
successfully.
* Add test for open_dispositions on directories.
Diffstat (limited to 'source4/libcli/raw/interfaces.h')
-rw-r--r-- | source4/libcli/raw/interfaces.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h index 13217158cb..f7d64d04cc 100644 --- a/source4/libcli/raw/interfaces.h +++ b/source4/libcli/raw/interfaces.h @@ -1356,6 +1356,7 @@ enum smb_open_level { RAW_OPEN_T2OPEN, RAW_OPEN_NTTRANS_CREATE, RAW_OPEN_OPENX_READX, + RAW_OPEN_NTCREATEX_READX, RAW_OPEN_SMB2 }; @@ -1400,6 +1401,9 @@ union smb_open { case RAW_OPEN_OPENX_READX: \ file = &op->openxreadx.out.file; \ break; \ + case RAW_OPEN_NTCREATEX_READX: \ + file = &op->ntcreatexreadx.out.file; \ + break; \ case RAW_OPEN_SMB2: \ file = &op->smb2.out.file; \ break; \ @@ -1619,6 +1623,54 @@ union smb_open { } out; } openxreadx; + /* chained NTCreateX/ReadX interface */ + struct { + enum smb_open_level level; + struct { + uint32_t flags; + uint32_t root_fid; + uint32_t access_mask; + uint64_t alloc_size; + uint32_t file_attr; + uint32_t share_access; + uint32_t open_disposition; + uint32_t create_options; + uint32_t impersonation; + uint8_t security_flags; + /* NOTE: fname can also be a pointer to a + uint64_t file_id if create_options has the + NTCREATEX_OPTIONS_OPEN_BY_FILE_ID flag set */ + const char *fname; + + /* readx part */ + uint64_t offset; + uint16_t mincnt; + uint32_t maxcnt; + uint16_t remaining; + } in; + struct { + union smb_handle file; + uint8_t oplock_level; + uint32_t create_action; + NTTIME create_time; + NTTIME access_time; + NTTIME write_time; + NTTIME change_time; + uint32_t attrib; + uint64_t alloc_size; + uint64_t size; + uint16_t file_type; + uint16_t ipc_state; + uint8_t is_directory; + + /* readx part */ + uint8_t *data; + uint16_t remaining; + uint16_t compaction_mode; + uint16_t nread; + } out; + } ntcreatexreadx; + #define SMB2_CREATE_FLAG_REQUEST_OPLOCK 0x0100 #define SMB2_CREATE_FLAG_REQUEST_EXCLUSIVE_OPLOCK 0x0800 #define SMB2_CREATE_FLAG_GRANT_OPLOCK 0x0001 |