Author: tridge Date: 2004-11-06 09:34:17 +0000 (Sat, 06 Nov 2004) New Revision: 3575
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=3575 Log: fixed attribute normalisation in xattr code. RAW-SEARCH now passes again. Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c Changeset: Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c =================================================================== --- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c 2004-11-06 09:12:53 UTC (rev 3574) +++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_util.c 2004-11-06 09:34:17 UTC (rev 3575) @@ -63,3 +63,19 @@ } return NT_STATUS_OK; } + + +/* + normalise a file attribute +*/ +uint32_t pvfs_attrib_normalise(uint32_t attrib) +{ + if (attrib == 0) { + attrib = FILE_ATTRIBUTE_NORMAL; + } + if (attrib != FILE_ATTRIBUTE_NORMAL) { + attrib &= ~FILE_ATTRIBUTE_NORMAL; + } + return attrib; +} + Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c =================================================================== --- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c 2004-11-06 09:12:53 UTC (rev 3574) +++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_xattr.c 2004-11-06 09:34:17 UTC (rev 3575) @@ -184,7 +184,7 @@ switch (attrib.version) { case 1: info1 = &attrib.info.info1; - name->dos.attrib = info1->attrib; + name->dos.attrib = pvfs_attrib_normalise(info1->attrib); name->dos.ea_size = info1->ea_size; if (name->st.st_size == info1->size) { name->dos.alloc_size = info1->alloc_size; @@ -224,6 +224,8 @@ attrib.version = 1; info1 = &attrib.info.info1; + name->dos.attrib = pvfs_attrib_normalise(name->dos.attrib); + info1->attrib = name->dos.attrib; info1->ea_size = name->dos.ea_size; info1->size = name->st.st_size;
