summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/libcli/smb2/getinfo.c1
-rw-r--r--source4/libcli/smb2/smb2_calls.h16
-rw-r--r--source4/torture/smb2/getinfo.c14
-rw-r--r--source4/torture/smb2/util.c8
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);