From: Jeremy Allison Date: Thu, 10 Mar 2005 02:00:24 +0000 (+0000) Subject: r5723: Add missing part of fix for #2271. After analysing the actions of a XP X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~5157 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=710bceee325005b8ca8e8ed04acc50bafa92b6e6;p=thirdparty%2Fsamba.git 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. --- diff --git a/source/libsmb/clilist.c b/source/libsmb/clilist.c index d60739cf7c4..dcac17d24a2 100644 --- a/source/libsmb/clilist.c +++ b/source/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);