ntvfs: support setfileinfo with FULL_EA_INFORMATION
authorDavid Disseldorp <ddiss@samba.org>
Wed, 3 Apr 2013 12:01:00 +0000 (14:01 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 3 Apr 2013 14:14:32 +0000 (16:14 +0200)
Use existing unmarshall and set helper functions. This allows the
smb2.setinfo.setinfo test to run against the ntvfs file server.

Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Wed Apr  3 16:14:33 CEST 2013 on sn-devel-104

selftest/knownfail
source4/ntvfs/posix/pvfs_setfileinfo.c
source4/smb_server/blob.c

index e4b4694db3444d24beda8ea2fb33bd6124dcbdbc..61a0a0ed2437c715cc90b6e73451612e57da61fa 100644 (file)
 ^samba4.blackbox.upgradeprovision.alpha13.ldapcmp_sd\(none\) # Due to something rewriting the NT ACL on DNS objects
 ^samba4.blackbox.upgradeprovision.alpha13.ldapcmp_full_sd\(none\) # Due to something rewriting the NT ACL on DNS objects
 ^samba4.blackbox.upgradeprovision.release-4-0-0.ldapcmp_sd\(none\) # Due to something rewriting the NT ACL on DNS objects
-^samba4.smb2.setinfo.setinfo # ntvfs doesn't support FULL_EA_INFORMATION set.
 ^samba3.smb2.create.gentest
 ^samba3.smb2.create.blob
 ^samba3.smb2.create.open
index 3c9b18d91ce5f7f8dc995afd9e9f2a400bd3b87f..7fd4e35d4f5606b490e6e1c1ed69bac4eb3a49d2 100644 (file)
@@ -367,7 +367,7 @@ NTSTATUS pvfs_setfileinfo(struct ntvfs_module_context *ntvfs,
                break;
 
        case RAW_SFILEINFO_EA_SET:
-               return pvfs_setfileinfo_ea_set(pvfs, h->name, h->fd, 
+               return pvfs_setfileinfo_ea_set(pvfs, h->name, h->fd,
                                               info->ea_set.in.num_eas,
                                               info->ea_set.in.eas);
 
@@ -420,6 +420,11 @@ NTSTATUS pvfs_setfileinfo(struct ntvfs_module_context *ntvfs,
                h->position = info->position_information.in.position;
                break;
 
+       case RAW_SFILEINFO_FULL_EA_INFORMATION:
+               return pvfs_setfileinfo_ea_set(pvfs, h->name, h->fd,
+                               info->full_ea_information.in.eas.num_eas,
+                               info->full_ea_information.in.eas.eas);
+
        case RAW_SFILEINFO_MODE_INFORMATION:
                /* this one is a puzzle */
                if (info->mode_information.in.mode != 0 &&
index c0077c01c9ffa9349050fc1566abab7226244690..a3e11239b1a53233669e7cebe6ecdcad5bd663d1 100644 (file)
@@ -625,6 +625,12 @@ NTSTATUS smbsrv_pull_passthru_sfileinfo(TALLOC_CTX *mem_ctx,
 
                return NT_STATUS_OK;
 
+       case RAW_SFILEINFO_FULL_EA_INFORMATION:
+               return ea_pull_list_chained(blob,
+                                           mem_ctx,
+                                       &st->full_ea_information.in.eas.num_eas,
+                                       &st->full_ea_information.in.eas.eas);
+
        case RAW_SFILEINFO_MODE_INFORMATION:
                BLOB_CHECK_MIN_SIZE(blob, 4);