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:
committed by
Gerald (Jerry) Carter
parent
11c852170b
commit
ad5a5ea08d
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user