summaryrefslogtreecommitdiff
path: root/source3/smbd/dir.c
diff options
context:
space:
mode:
authorSamba Release Account <samba-bugs@samba.org>1997-07-03 19:44:06 +0000
committerSamba Release Account <samba-bugs@samba.org>1997-07-03 19:44:06 +0000
commitf6384eca672565bf820f86721de5cf25a5e5e9fe (patch)
tree45d6716f3f46c82adca49c37828d1da41e84c192 /source3/smbd/dir.c
parent751eb54b6b71c01f0e55d82a95b1e45dd1aaae00 (diff)
downloadsamba-f6384eca672565bf820f86721de5cf25a5e5e9fe.tar.gz
samba-f6384eca672565bf820f86721de5cf25a5e5e9fe.tar.bz2
samba-f6384eca672565bf820f86721de5cf25a5e5e9fe.zip
Fix for deleting directories that contain only veto files.
Needed for interoperability with netatalk volumes. Jeremy (jallison@whistle.com) (This used to be commit e72a8513bccf77177f6fb6002057fee608947a32)
Diffstat (limited to 'source3/smbd/dir.c')
-rw-r--r--source3/smbd/dir.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index bc099dd1e8..1d0228864c 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -116,7 +116,7 @@ static void *dptr_get(int key,uint32 lastused)
if (dptrs_open >= MAXDIR)
dptr_idleoldest();
DEBUG(4,("Reopening dptr key %d\n",key));
- if ((dirptrs[key].ptr = OpenDir(dirptrs[key].path)))
+ if ((dirptrs[key].ptr = OpenDir(dirptrs[key].path, True)))
dptrs_open++;
}
return(dirptrs[key].ptr);
@@ -259,7 +259,7 @@ static BOOL start_dir(int cnum,char *directory)
if (! *directory)
directory = ".";
- Connections[cnum].dirptr = OpenDir(directory);
+ Connections[cnum].dirptr = OpenDir(directory, True);
if (Connections[cnum].dirptr) {
dptrs_open++;
string_set(&Connections[cnum].dirpath,directory);
@@ -520,7 +520,7 @@ typedef struct
/*******************************************************************
open a directory
********************************************************************/
-void *OpenDir(char *name)
+void *OpenDir(char *name, BOOL use_veto)
{
Dir *dirp;
char *n;
@@ -539,7 +539,7 @@ void *OpenDir(char *name)
while ((n = readdirname(p))) {
int l = strlen(n)+1;
/* If it's a vetoed file, pretend it doesn't even exist */
- if(is_vetoed_name(n))
+ if(use_veto && is_vetoed_name(n))
continue;
if (used + l > dirp->mallocsize) {
int s = MAX(used+l,used+2000);