summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/smbd/dosmode.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/smbd/dosmode.c b/source/smbd/dosmode.c
index 8a5a7b0d0e2..07e1103dc9b 100644
--- a/source/smbd/dosmode.c
+++ b/source/smbd/dosmode.c
@@ -20,6 +20,8 @@
#include "includes.h"
+extern enum protocol_types Protocol;
+
static int set_sparse_flag(const SMB_STRUCT_STAT * const sbuf)
{
#if defined (HAVE_STAT_ST_BLOCKS) && defined(STAT_ST_BLOCKSIZE)
@@ -335,6 +337,12 @@ uint32 dos_mode_msdfs(connection_struct *conn, const char *path,SMB_STRUCT_STAT
result |= aHIDDEN;
}
+ if (Protocol <= PROTOCOL_LANMAN2) {
+ DEBUG(10,("dos_mode_msdfs : filtering result 0x%x\n",
+ (unsigned int)result ));
+ result &= 0xff;
+ }
+
DEBUG(8,("dos_mode_msdfs returning "));
if (result & aHIDDEN) DEBUG(8, ("h"));
@@ -400,6 +408,12 @@ uint32 dos_mode(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf)
result |= aHIDDEN;
}
+ if (Protocol <= PROTOCOL_LANMAN2) {
+ DEBUG(10,("dos_mode : filtering result 0x%x\n",
+ (unsigned int)result ));
+ result &= 0xff;
+ }
+
DEBUG(8,("dos_mode returning "));
if (result & aHIDDEN) DEBUG(8, ("h"));