diff --git a/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java b/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java index 8efde51ca3..e1827da1ed 100644 --- a/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java +++ b/source/java/org/alfresco/filesys/smb/server/NTProtocolHandler.java @@ -5687,7 +5687,7 @@ public class NTProtocolHandler extends CoreProtocolHandler // Build the NT create andX response - outPkt.setParameterCount((flags & WinNT.ExtendedResponse) != 0 ? 42 : 34); + outPkt.setParameterCount( 34); outPkt.setAndXCommand(0xFF); outPkt.setParameter(1, 0); // AndX offset @@ -5696,7 +5696,7 @@ public class NTProtocolHandler extends CoreProtocolHandler // Fake the oplock for certain file types - boolean fakeOpLocks = false; + boolean fakeOpLocks = FakeOpLocks; String fname = params.getPath().toUpperCase(); if ( fname.endsWith( ".URL")){ @@ -5778,7 +5778,7 @@ public class NTProtocolHandler extends CoreProtocolHandler prms.packLong(fileSize); // Allocation size prms.packLong(netFile.getFileSize()); // End of file prms.packWord(0); // File type - disk file - prms.packWord(0); // Device state + prms.packWord((flags & WinNT.ExtendedResponse) != 0 ? 7 : 0); // Device state prms.packByte(netFile.isDirectory() ? 1 : 0); prms.packWord(0); // byte count = 0 diff --git a/source/java/org/alfresco/filesys/smb/server/repo/CifsHelper.java b/source/java/org/alfresco/filesys/smb/server/repo/CifsHelper.java index b93cc16473..3bd08b41c9 100644 --- a/source/java/org/alfresco/filesys/smb/server/repo/CifsHelper.java +++ b/source/java/org/alfresco/filesys/smb/server/repo/CifsHelper.java @@ -239,6 +239,7 @@ public class CifsHelper { long modified = DefaultTypeConverter.INSTANCE.longValue(modifiedDate); fileInfo.setModifyDateTime(modified); + fileInfo.setAccessDateTime(modified); } // name String name = fileFolderInfo.getName(); @@ -252,6 +253,11 @@ public class CifsHelper if ( permissionService.hasPermission(nodeRef, PermissionService.WRITE) == AccessStatus.DENIED) fileInfo.setFileAttributes(fileInfo.getFileAttributes() + FileAttribute.ReadOnly); + // Set the normal file attribute if no other attributes are set + + if ( fileInfo.getFileAttributes() == 0) + fileInfo.setFileAttributes(FileAttribute.NTNormal); + // Debug if (logger.isDebugEnabled())