s3:libsmb: parse_finfo_id_both_directory_info capture FileID in SMB2_FIND_ID_BOTH_DIR...
authorPuran Chand <pchand@vmware.com>
Fri, 18 Jan 2019 00:13:23 +0000 (16:13 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 18 Jan 2019 19:11:22 +0000 (20:11 +0100)
This captures the FileID in struct file_info while parsing SMB2_FIND_ID_BOTH_DIRECTORY_INFO
response

Refered MS doc for spec:- https://msdn.microsoft.com/en-us/library/cc246290.aspx

Signed-off-by: Puran Chand <pchand@vmware.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/include/client.h
source3/libsmb/cli_smb2_fnum.c

index 0cb21384f17bb584051400c977498009e55bcb2a..27206a608b9c74e53f40a3f01185a0a722340a76 100644 (file)
@@ -107,6 +107,7 @@ struct file_info {
        uint16_t mode;
        uid_t uid;
        gid_t gid;
+       uint64_t ino;
        /* these times are normally kept in GMT */
        struct timespec btime_ts; /* Birth-time if supported by system */
        struct timespec mtime_ts;
index 3a64438a5b998d3f6d0806326722ed5f72079c70..b115caec80f7118f52810512b4ebfb0a9c286018 100644 (file)
@@ -825,6 +825,7 @@ static NTSTATUS parse_finfo_id_both_directory_info(uint8_t *dir_data,
        finfo->ctime_ts = interpret_long_date((const char *)dir_data + 32);
        finfo->size = IVAL2_TO_SMB_BIG_UINT(dir_data + 40, 0);
        finfo->mode = CVAL(dir_data + 56, 0);
+       finfo->ino = IVAL2_TO_SMB_BIG_UINT(dir_data + 96, 0);
        namelen = IVAL(dir_data + 60,0);
        if (namelen > (dir_data_length - 104)) {
                return NT_STATUS_INFO_LENGTH_MISMATCH;