diff options
author | Herb Lewis <herb@samba.org> | 2002-03-21 14:00:13 +0000 |
---|---|---|
committer | Herb Lewis <herb@samba.org> | 2002-03-21 14:00:13 +0000 |
commit | 1783dcd2f189d64514733e759bdecc68e86a95ea (patch) | |
tree | 89cc79056d1fbdf281ad9fc4a97cb9dd35316b2d /source3 | |
parent | 73c45a4a6fe0504b73bceef0a3c3b468f324825d (diff) | |
download | samba-1783dcd2f189d64514733e759bdecc68e86a95ea.tar.gz samba-1783dcd2f189d64514733e759bdecc68e86a95ea.tar.bz2 samba-1783dcd2f189d64514733e759bdecc68e86a95ea.zip |
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)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/dir.c | 14 |
1 files changed, 13 insertions, 1 deletions
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 */ |