summaryrefslogtreecommitdiff
path: root/source4/include
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-12-18 04:38:43 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:07:29 -0500
commited42a64901ba0a7ad8cbaac582600688af1b7d72 (patch)
treeb68217a14fbd61d1f58b702d7ecc5b9ee66f2ce5 /source4/include
parentb02c5abfb470575a67ced192b2913b5a1c73dd3e (diff)
downloadsamba-ed42a64901ba0a7ad8cbaac582600688af1b7d72.tar.gz
samba-ed42a64901ba0a7ad8cbaac582600688af1b7d72.tar.bz2
samba-ed42a64901ba0a7ad8cbaac582600688af1b7d72.zip
r4263: added support for the trans2 RAW_SEARCH_EA_LIST information
level. This is quite a strange level that we've never seen before, but is used by the os2 workplace shell. note w2k screws up this level when unicode is negotiated, so it only passes the RAW-SEARCH test when you force non-unicode (This used to be commit 25189b8fbf6515d573e3398dc9fca56505dc37b9)
Diffstat (limited to 'source4/include')
-rw-r--r--source4/include/smb_interfaces.h22
-rw-r--r--source4/include/trans2.h1
2 files changed, 23 insertions, 0 deletions
diff --git a/source4/include/smb_interfaces.h b/source4/include/smb_interfaces.h
index 9916bf2385..91ed102d6a 100644
--- a/source4/include/smb_interfaces.h
+++ b/source4/include/smb_interfaces.h
@@ -1675,6 +1675,7 @@ enum smb_search_level {RAW_SEARCH_GENERIC = 0xF000,
RAW_SEARCH_FUNIQUE, /* SMBfunique */
RAW_SEARCH_STANDARD = SMB_FIND_STANDARD,
RAW_SEARCH_EA_SIZE = SMB_FIND_EA_SIZE,
+ RAW_SEARCH_EA_LIST = SMB_FIND_EA_LIST,
RAW_SEARCH_DIRECTORY_INFO = SMB_FIND_DIRECTORY_INFO,
RAW_SEARCH_FULL_DIRECTORY_INFO = SMB_FIND_FULL_DIRECTORY_INFO,
RAW_SEARCH_NAME_INFO = SMB_FIND_NAME_INFO,
@@ -1715,6 +1716,10 @@ union smb_search_first {
uint16_t flags;
uint32_t storage_type;
const char *pattern;
+
+ /* the ea names are only used for RAW_SEARCH_EA_LIST */
+ uint_t num_names;
+ struct ea_name *ea_names;
} in;
struct {
uint16_t handle;
@@ -1761,6 +1766,10 @@ union smb_search_next {
uint32_t resume_key;
uint16_t flags;
const char *last_name;
+
+ /* the ea names are only used for RAW_SEARCH_EA_LIST */
+ uint_t num_names;
+ struct ea_name *ea_names;
} in;
struct {
uint16_t count;
@@ -1805,6 +1814,19 @@ union smb_search_data {
WIRE_STRING name;
} ea_size;
+ /* trans2 findfirst RAW_SEARCH_EA_LIST level */
+ struct {
+ uint32_t resume_key;
+ time_t create_time;
+ time_t access_time;
+ time_t write_time;
+ uint32_t size;
+ uint32_t alloc_size;
+ uint16_t attrib;
+ struct smb_ea_list eas;
+ WIRE_STRING name;
+ } ea_list;
+
/* RAW_SEARCH_DIRECTORY_INFO interface */
struct {
uint32_t file_index;
diff --git a/source4/include/trans2.h b/source4/include/trans2.h
index 9afb9d4c2d..06251ddefe 100644
--- a/source4/include/trans2.h
+++ b/source4/include/trans2.h
@@ -253,6 +253,7 @@ Found 0 aliased levels
*/
#define SMB_FIND_STANDARD 1
#define SMB_FIND_EA_SIZE 2
+#define SMB_FIND_EA_LIST 3
#define SMB_FIND_DIRECTORY_INFO 0x101
#define SMB_FIND_FULL_DIRECTORY_INFO 0x102
#define SMB_FIND_NAME_INFO 0x103