diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/libcli/smb2/getinfo.c | 1 | ||||
-rw-r--r-- | source4/libcli/smb2/smb2_calls.h | 16 | ||||
-rw-r--r-- | source4/torture/smb2/getinfo.c | 14 | ||||
-rw-r--r-- | source4/torture/smb2/util.c | 8 |
4 files changed, 24 insertions, 15 deletions
diff --git a/source4/libcli/smb2/getinfo.c b/source4/libcli/smb2/getinfo.c index 1594b8c1b4..fe27cc711b 100644 --- a/source4/libcli/smb2/getinfo.c +++ b/source4/libcli/smb2/getinfo.c @@ -178,6 +178,7 @@ NTSTATUS smb2_getinfo_parse(TALLOC_CTX *mem_ctx, io->all_info.write_time = smbcli_pull_nttime(blob.data, 0x10); io->all_info.change_time = smbcli_pull_nttime(blob.data, 0x18); io->all_info.file_attr = IVAL(blob.data, 0x20); + io->all_info.unknown1 = IVAL(blob.data, 0x24); io->all_info.alloc_size = BVAL(blob.data, 0x28); io->all_info.size = BVAL(blob.data, 0x30); io->all_info.nlink = IVAL(blob.data, 0x38); diff --git a/source4/libcli/smb2/smb2_calls.h b/source4/libcli/smb2/smb2_calls.h index d0a1cb8905..872e20f156 100644 --- a/source4/libcli/smb2/smb2_calls.h +++ b/source4/libcli/smb2/smb2_calls.h @@ -191,13 +191,13 @@ struct smb2_close { }; /* fs information levels */ -#define SMB2_GETINFO_FS_01 0x0102 -#define SMB2_GETINFO_FS_03 0x0302 -#define SMB2_GETINFO_FS_04 0x0402 -#define SMB2_GETINFO_FS_ATTRIB_INFO 0x0502 -#define SMB2_GETINFO_FS_06 0x0602 -#define SMB2_GETINFO_FS_07 0x0702 -#define SMB2_GETINFO_FS_08 0x0802 +#define SMB2_GETINFO_FS_VOLUME_INFO 0x0102 +#define SMB2_GETINFO_FS_SIZE_INFO 0x0302 +#define SMB2_GETINFO_FS_DEVICE_INFO 0x0402 +#define SMB2_GETINFO_FS_ATTRIBUTE_INFO 0x0502 +#define SMB2_GETINFO_FS_QUOTA_INFO 0x0602 +#define SMB2_GETINFO_FS_FULL_SIZE_INFO 0x0702 +#define SMB2_GETINFO_FS_OBJECTID_INFO 0x0802 /* class 3 levels */ #define SMB2_GETINFO_SECURITY 0x0003 @@ -295,7 +295,7 @@ union smb2_fileinfo { NTTIME write_time; NTTIME change_time; uint32_t file_attr; - /* uint32_t _pad; */ + uint32_t unknown1; uint64_t alloc_size; uint64_t size; uint32_t nlink; diff --git a/source4/torture/smb2/getinfo.c b/source4/torture/smb2/getinfo.c index 843ef5b5d0..f175b19f89 100644 --- a/source4/torture/smb2/getinfo.c +++ b/source4/torture/smb2/getinfo.c @@ -33,13 +33,13 @@ static struct { union smb2_fileinfo dinfo; } levels[] = { #define LEVEL(x) #x, x - { LEVEL(SMB2_GETINFO_FS_01) }, - { LEVEL(SMB2_GETINFO_FS_03) }, - { LEVEL(SMB2_GETINFO_FS_04) }, - { LEVEL(SMB2_GETINFO_FS_ATTRIB_INFO) }, - { LEVEL(SMB2_GETINFO_FS_06) }, - { LEVEL(SMB2_GETINFO_FS_07) }, - { LEVEL(SMB2_GETINFO_FS_08) }, + { LEVEL(SMB2_GETINFO_FS_VOLUME_INFO) }, + { LEVEL(SMB2_GETINFO_FS_SIZE_INFO) }, + { LEVEL(SMB2_GETINFO_FS_DEVICE_INFO) }, + { LEVEL(SMB2_GETINFO_FS_ATTRIBUTE_INFO) }, + { LEVEL(SMB2_GETINFO_FS_QUOTA_INFO) }, + { LEVEL(SMB2_GETINFO_FS_FULL_SIZE_INFO) }, + { LEVEL(SMB2_GETINFO_FS_OBJECTID_INFO) }, { LEVEL(SMB2_GETINFO_SECURITY) }, { LEVEL(SMB2_GETINFO_FILE_BASIC_INFO) }, { LEVEL(SMB2_GETINFO_FILE_SIZE_INFO) }, diff --git a/source4/torture/smb2/util.c b/source4/torture/smb2/util.c index 2c3965831a..6cbc230630 100644 --- a/source4/torture/smb2/util.c +++ b/source4/torture/smb2/util.c @@ -48,6 +48,7 @@ void torture_smb2_all_info(struct smb2_tree *tree, struct smb2_handle handle) d_printf("\twrite_time: %s\n", nt_time_string(tmp_ctx, io.all_info.write_time)); d_printf("\tchange_time: %s\n", nt_time_string(tmp_ctx, io.all_info.change_time)); d_printf("\tattrib: 0x%x\n", io.all_info.file_attr); + d_printf("\tunknown1: 0x%x\n", io.all_info.unknown1); d_printf("\talloc_size: %llu\n", (uint64_t)io.all_info.alloc_size); d_printf("\tsize: %llu\n", (uint64_t)io.all_info.size); d_printf("\tnlink: %u\n", io.all_info.nlink); @@ -60,6 +61,13 @@ void torture_smb2_all_info(struct smb2_tree *tree, struct smb2_handle handle) d_printf("\tunknown6: 0x%llx\n", io.all_info.unknown6); d_printf("\tfname: '%s'\n", io.all_info.fname); + /* short name, if any */ + status = smb2_getinfo_level(tree, tmp_ctx, handle, + SMB2_GETINFO_FILE_SHORT_INFO, &io); + if (NT_STATUS_IS_OK(status)) { + d_printf("\tshort name: '%s'\n", io.short_info.short_name); + } + /* the EAs, if any */ status = smb2_getinfo_level(tree, tmp_ctx, handle, SMB2_GETINFO_FILE_ALL_EAS, &io); |