summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-08-18 21:38:33 +0000
committerJeremy Allison <jra@samba.org>2003-08-18 21:38:33 +0000
commitfdf78a499750a439701068c7a11a65482af2103c (patch)
tree0753bc03756e18dbb4210e8c669d6bb942d4b244
parent292a1e2d965361ac0522c143521e7515224cf643 (diff)
downloadsamba-fdf78a499750a439701068c7a11a65482af2103c.tar.gz
samba-fdf78a499750a439701068c7a11a65482af2103c.tar.bz2
samba-fdf78a499750a439701068c7a11a65482af2103c.zip
Add level 261 to search. Found using Samba4 tester.
Jeremy. (This used to be commit 4ee99d1c412ecc77541c988f6795ae3cb89907b8)
-rw-r--r--source3/include/trans2.h2
-rw-r--r--source3/smbd/trans2.c22
2 files changed, 24 insertions, 0 deletions
diff --git a/source3/include/trans2.h b/source3/include/trans2.h
index eb5b1bc79f..168e647721 100644
--- a/source3/include/trans2.h
+++ b/source3/include/trans2.h
@@ -230,6 +230,8 @@ Byte offset Type name description
#define SMB_FIND_FILE_FULL_DIRECTORY_INFO 0x102
#define SMB_FIND_FILE_NAMES_INFO 0x103
#define SMB_FIND_FILE_BOTH_DIRECTORY_INFO 0x104
+#define SMB_FIND_FILE_LEVEL_261 0x105
+#define SMB_FIND_FILE_LEVEL_262 0x106
#define SMB_SET_FILE_BASIC_INFO 0x101
#define SMB_SET_FILE_DISPOSITION_INFO 0x102
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index f56d2dff22..56c9de2b14 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -761,6 +761,27 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn,
p = pdata + len;
break;
+ case SMB_FIND_FILE_LEVEL_261:
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ put_long_date(p,cdate); p += 8;
+ put_long_date(p,adate); p += 8;
+ put_long_date(p,mdate); p += 8;
+ put_long_date(p,mdate); p += 8;
+ SOFF_T(p,0,file_size);
+ SOFF_T(p,8,allocation_size);
+ p += 16;
+ SIVAL(p,0,nt_extmode);
+ p += 4;
+ len = srvstr_push(outbuf, p + 20, fname, -1, STR_TERMINATE_ASCII);
+ SIVAL(p, 0, len);
+ p += 20 + len; /* Strlen, EA size. Unknown 0 1 2, string itself */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
+
/* CIFS UNIX Extension. */
case SMB_FIND_FILE_UNIX:
@@ -893,6 +914,7 @@ close_if_end = %d requires_resume_key = %d level = %d, max_data_bytes = %d\n",
case SMB_FIND_FILE_FULL_DIRECTORY_INFO:
case SMB_FIND_FILE_NAMES_INFO:
case SMB_FIND_FILE_BOTH_DIRECTORY_INFO:
+ case SMB_FIND_FILE_LEVEL_261:
break;
case SMB_FIND_FILE_UNIX:
if (!lp_unix_extensions())