[PATCH] ntvfs: support setfileinfo with FULL_EA_INFORMATION
David Disseldorp
ddiss at samba.org
Wed Apr 3 06:01:00 MDT 2013
Use existing unmarshall and set helper functions. This allows the
smb2.setinfo.setinfo test to run against the ntvfs file server.
---
selftest/knownfail | 1 -
source4/ntvfs/posix/pvfs_setfileinfo.c | 7 ++++++-
source4/smb_server/blob.c | 6 ++++++
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/selftest/knownfail b/selftest/knownfail
index e4b4694..61a0a0e 100644
--- a/selftest/knownfail
+++ b/selftest/knownfail
@@ -162,7 +162,6 @@
^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
diff --git a/source4/ntvfs/posix/pvfs_setfileinfo.c b/source4/ntvfs/posix/pvfs_setfileinfo.c
index 3c9b18d..7fd4e35 100644
--- a/source4/ntvfs/posix/pvfs_setfileinfo.c
+++ b/source4/ntvfs/posix/pvfs_setfileinfo.c
@@ -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 &&
diff --git a/source4/smb_server/blob.c b/source4/smb_server/blob.c
index c0077c0..a3e1123 100644
--- a/source4/smb_server/blob.c
+++ b/source4/smb_server/blob.c
@@ -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);
--
1.8.1.4
More information about the samba-technical
mailing list