summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-03-10 02:00:24 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:55:57 -0500
commit4a62d418d9dbed3838dda871e4ead052fbe2bf0c (patch)
treeaf3cf9c5468e97f89a3c0e177a35fa605f00c9de
parenteb546db88d9d4ad8da3709b2edc4d455a88e6119 (diff)
downloadsamba-4a62d418d9dbed3838dda871e4ead052fbe2bf0c.tar.gz
samba-4a62d418d9dbed3838dda871e4ead052fbe2bf0c.tar.bz2
samba-4a62d418d9dbed3838dda871e4ead052fbe2bf0c.zip
r5723: Add missing part of fix for #2271. After analysing the actions of a XP
client against a Samba server. It never uses the "continue" flag, but always does "new search, continue from this file" instead. Change our client code to do the same (it appears that's all they test in W2K etc.). Jeremy. (This used to be commit 710bceee325005b8ca8e8ed04acc50bafa92b6e6)
-rw-r--r--source3/libsmb/clilist.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source3/libsmb/clilist.c b/source3/libsmb/clilist.c
index d60739cf7c..dcac17d24a 100644
--- a/source3/libsmb/clilist.c
+++ b/source3/libsmb/clilist.c
@@ -191,7 +191,7 @@ int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
setup = TRANSACT2_FINDFIRST;
SSVAL(param,0,attribute); /* attribute */
SSVAL(param,2,max_matches); /* max count */
- SSVAL(param,4,4+2); /* resume required + close on end */
+ SSVAL(param,4,(FLAG_TRANS2_FIND_REQUIRE_RESUME|FLAG_TRANS2_FIND_CLOSE_IF_END)); /* resume required + close on end */
SSVAL(param,6,info_level);
SIVAL(param,8,0);
p = param+12;
@@ -203,7 +203,9 @@ int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
SSVAL(param,2,max_matches); /* max count */
SSVAL(param,4,info_level);
SIVAL(param,6,0); /* ff_resume_key */
- SSVAL(param,10,8+4+2); /* continue + resume required + close on end */
+ /* NB. *DON'T* use continue here. If you do it seems that W2K and bretheren
+ can miss filenames. Use last filename continue instead. JRA */
+ SSVAL(param,4,(FLAG_TRANS2_FIND_REQUIRE_RESUME|FLAG_TRANS2_FIND_CLOSE_IF_END)); /* resume required + close on end */
p = param+12;
p += clistr_push(cli, param+12, mask, sizeof(param)-12,
STR_TERMINATE);