From 1783dcd2f189d64514733e759bdecc68e86a95ea Mon Sep 17 00:00:00 2001 From: Herb Lewis Date: Thu, 21 Mar 2002 14:00:13 +0000 Subject: return . and .. first in readdir - this fixes masktest on IRIX which returns . then single letter files then .. then all other files. (This used to be commit d4d9361eec11f50c780ed4c79bc9775ac24d8c0e) --- source3/smbd/dir.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source3/smbd') diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index 3a7b697d75..40b198ed72 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -729,10 +729,22 @@ void *OpenDir(connection_struct *conn, char *name, BOOL use_veto) dirp->pos = dirp->numentries = dirp->mallocsize = 0; dirp->data = dirp->current = NULL; - while ((n = vfs_readdirname(conn, p))) + while (True) { int l; + if (used == 0) { + n = "."; + } else if (used == 2) { + n = ".."; + } else { + n = vfs_readdirname(conn, p); + if (n == NULL) + break; + if ((strcmp(".",n) == 0) ||(strcmp("..",n) == 0)) + continue; + } + l = strlen(n)+1; /* If it's a vetoed file, pretend it doesn't even exist */ -- cgit