1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-30 20:23:49 +03:00

r2787: force masktest to use RAW_SEARCH_BOTH_DIRECTORY_INFO so it can obtain the short name

This commit is contained in:
Andrew Tridgell
2004-10-02 12:30:02 +00:00
committed by Gerald (Jerry) Carter
parent 11c852170b
commit ad5a5ea08d
2 changed files with 14 additions and 9 deletions

View File

@@ -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);
}