Author: jra
Date: 2005-08-21 21:12:27 +0000 (Sun, 21 Aug 2005)
New Revision: 9457

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9457

Log:
Attempt to fix bug #3010 by handling END_OF_DIRECTORY_OFFSET
consistently.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/smbd/dir.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/dir.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/dir.c        2005-08-21 21:12:24 UTC (rev 
9456)
+++ branches/SAMBA_3_0/source/smbd/dir.c        2005-08-21 21:12:27 UTC (rev 
9457)
@@ -1100,6 +1100,9 @@
                }
                dirp->file_number++;
                return n;
+       } else if (*poffset == END_OF_DIRECTORY_OFFSET) {
+               *poffset = dirp->offset = END_OF_DIRECTORY_OFFSET;
+               return NULL;
        } else {
                /* A real offset, seek to it. */
                SeekDir(dirp, *poffset);
@@ -1122,7 +1125,7 @@
                dirp->file_number++;
                return e->name;
        }
-       dirp->offset = END_OF_DIRECTORY_OFFSET;
+       *poffset = dirp->offset = END_OF_DIRECTORY_OFFSET;
        return NULL;
 }
 
@@ -1147,6 +1150,8 @@
        if (offset != dirp->offset) {
                if (offset == START_OF_DIRECTORY_OFFSET || offset == 
DOT_DOT_DIRECTORY_OFFSET) {
                        RewindDir(dirp, &offset);
+               } else if (offset == END_OF_DIRECTORY_OFFSET) {
+                       ; /* Don't seek in this case. */
                } else {
                        SMB_VFS_SEEKDIR(dirp->conn, dirp->dir, offset);
                }

Reply via email to