r3225: Fix correct use of resume name. Cope with the resume
authorJeremy Allison <jra@samba.org>
Mon, 25 Oct 2004 23:39:01 +0000 (23:39 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:53:03 +0000 (10:53 -0500)
name not existing. Found using Samba4 RAW-SEARCH.
Jeremy.
(This used to be commit 74dd2b33ff1ecba752682937c792628e081f17f5)

source3/smbd/trans2.c

index 9b1f2aa21051369208959f2a0ef88b498725e47b..ac282ed95fc48db3a7cd625cb2b2ded800a79efc 100644 (file)
@@ -1662,7 +1662,7 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
         * depend on the last file name instead.
         */
 
-       if(requires_resume_key && *resume_name && !continue_bit) {
+       if(*resume_name && !continue_bit) {
 
                /*
                 * Fix for NT redirector problem triggered by resume key indexes
@@ -1714,7 +1714,7 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
                if(current_pos < 0) {
                        DEBUG(7,("call_trans2findnext: notfound: seeking to pos %d\n", start_pos));
                        SeekDir(dirptr, start_pos);
-                       for(current_pos = start_pos; (dname = ReadDirName(dirptr)) != NULL; SeekDir(dirptr,++current_pos)) {
+                       for(current_pos = start_pos; (dname = ReadDirName(dirptr)) != NULL; ++current_pos) {
 
                                /*
                                 * Remember, mangle_map is called by
@@ -1737,7 +1737,11 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
                                }
                        } /* end for */
                } /* end if current_pos */
-       } /* end if requires_resume_key && !continue_bit */
+               /* Can't find the name. Just resume from where we were... */
+               if (dname == 0) {
+                       SeekDir(dirptr, start_pos);
+               }
+       } /* end if resume_name && !continue_bit */
 
        for (i=0;(i<(int)maxentries) && !finished && !out_of_space ;i++) {
                BOOL got_exact_match = False;