diff options
Diffstat (limited to 'source4/libcli/smb2')
-rw-r--r-- | source4/libcli/smb2/getinfo.c | 5 | ||||
-rw-r--r-- | source4/libcli/smb2/smb2_calls.h | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/source4/libcli/smb2/getinfo.c b/source4/libcli/smb2/getinfo.c index 85411fab92..62418a05b7 100644 --- a/source4/libcli/smb2/getinfo.c +++ b/source4/libcli/smb2/getinfo.c @@ -43,7 +43,7 @@ struct smb2_request *smb2_getinfo_send(struct smb2_tree *tree, struct smb2_getin SIVAL(req->out.body, 0x08, io->in.unknown1); SIVAL(req->out.body, 0x0C, io->in.unknown2); SIVAL(req->out.body, 0x10, io->in.flags); - SIVAL(req->out.body, 0x14, io->in.unknown4); + SIVAL(req->out.body, 0x14, io->in.flags2); smb2_push_handle(req->out.body+0x18, &io->in.handle); smb2_transport_send(req); @@ -124,6 +124,9 @@ struct smb2_request *smb2_getinfo_file_send(struct smb2_tree *tree, union smb_fi if (io->generic.level == RAW_FILEINFO_SEC_DESC) { b.in.flags = io->query_secdesc.secinfo_flags; } + if (io->generic.level == RAW_FILEINFO_SMB2_ALL_EAS) { + b.in.flags2 = io->all_eas.ea_flags; + } return smb2_getinfo_send(tree, &b); } diff --git a/source4/libcli/smb2/smb2_calls.h b/source4/libcli/smb2/smb2_calls.h index 1c41d4cd66..e6e1872d5e 100644 --- a/source4/libcli/smb2/smb2_calls.h +++ b/source4/libcli/smb2/smb2_calls.h @@ -188,6 +188,10 @@ struct smb2_close { #define SMB2_GETINFO_FS 0x02 #define SMB2_GETINFO_SECURITY 0x03 +/* flags for RAW_FILEINFO_SMB2_ALL_EAS */ +#define SMB2_GETINFO_EA_FLAG_RESTART 0x01 +#define SMB2_GETINFO_EA_FLAG_SINGLE 0x02 + /* NOTE! the getinfo fs and file levels exactly match up with the 'passthru' SMB levels, which are levels >= 1000. The SMB2 client lib uses the names from the libcli/raw/ library */ @@ -201,7 +205,7 @@ struct smb2_getinfo { uint32_t unknown1; uint32_t unknown2; uint32_t flags; /* level specific */ - uint32_t unknown4; + uint32_t flags2; /* used by all_eas level */ struct smb2_handle handle; } in; |