On Wed, Feb 04, 2009 at 06:48:04PM +0000, Geoff Johnstone wrote: > I'm using libsmbclient with smbc contexts. > > If I do an smbc_readdir() of a directory X then I get a > bunch of (correct) dirents. > > I then smbc_rmdir() a subdirectory X/Y, which succeeds. > > A subsequent smbc_readdir(), using the same smbc > context, still gives a dirent for X/Y. > > I've observed this with libsmbclient from Samba 3.2.4, > 3.2.7 and 3.3.0, talking to Samba and Win2K3 servers. > > Two questions: > 1. Does libsmbclient cache readdir results? > 2. How do I fix it (ideally without recreating the context)?
So long as the directory handle is kept open then libsmbclient caches the contents. If you're manipulating the directory contents you should close and re-open the handle after delete. I agree it kind of sucks, but we don't have the code in place to handle cache removals whilst open right now. Jeremy. -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/options/samba