From d1a568363049c82f4314f7a1c5453a92bee84343 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 2 Oct 2004 12:30:02 +0000 Subject: r2787: force masktest to use RAW_SEARCH_BOTH_DIRECTORY_INFO so it can obtain the short name (This used to be commit ad5a5ea08d5be812e0ef662948477add2433bc6f) --- source4/libcli/clilist.c | 18 +++++++++++------- source4/torture/masktest.c | 5 +++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/source4/libcli/clilist.c b/source4/libcli/clilist.c index 2659e81419..84d96d62f4 100644 --- a/source4/libcli/clilist.c +++ b/source4/libcli/clilist.c @@ -103,8 +103,9 @@ static BOOL smbcli_list_new_callback(void *private, union smb_search_data *file) } int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribute, - void (*fn)(file_info *, const char *, void *), - void *caller_state) + enum smb_search_level level, + void (*fn)(file_info *, const char *, void *), + void *caller_state) { union smb_search_first first_parms; union smb_search_next next_parms; @@ -125,11 +126,14 @@ int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribu state.dirlist = talloc(state.mem_ctx, 0); mask = talloc_strdup(state.mem_ctx, Mask); - if (tree->session->transport->negotiate.capabilities & CAP_NT_SMBS) { - state.info_level = RAW_SEARCH_BOTH_DIRECTORY_INFO; - } else { - state.info_level = RAW_SEARCH_STANDARD; + if (level == RAW_SEARCH_GENERIC) { + if (tree->session->transport->negotiate.capabilities & CAP_NT_SMBS) { + level = RAW_SEARCH_BOTH_DIRECTORY_INFO; + } else { + level = RAW_SEARCH_STANDARD; + } } + state.info_level = level; while (1) { state.ff_searchcount = 0; @@ -336,5 +340,5 @@ int smbcli_list(struct smbcli_tree *tree, const char *Mask,uint16_t attribute, { if (tree->session->transport->negotiate.protocol <= PROTOCOL_LANMAN1) return smbcli_list_old(tree, Mask, attribute, fn, state); - return smbcli_list_new(tree, Mask, attribute, fn, state); + return smbcli_list_new(tree, Mask, attribute, RAW_SEARCH_GENERIC, fn, state); } diff --git a/source4/torture/masktest.c b/source4/torture/masktest.c index 4097c8c35a..dbd7c2f74b 100644 --- a/source4/torture/masktest.c +++ b/source4/torture/masktest.c @@ -121,8 +121,9 @@ static void get_real_name(struct smbcli_state *cli, f_info_hit = False; smbcli_list_new(cli->tree, mask, - FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY, - listfn, NULL); + FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY, + RAW_SEARCH_BOTH_DIRECTORY_INFO, + listfn, NULL); if (f_info_hit) { fstrcpy(short_name, last_hit.short_name); -- cgit