diff options
Diffstat (limited to 'sys/src/cmd/aquarela/smbcomdir.c')
-rw-r--r-- | sys/src/cmd/aquarela/smbcomdir.c | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/sys/src/cmd/aquarela/smbcomdir.c b/sys/src/cmd/aquarela/smbcomdir.c deleted file mode 100644 index 72bf827ad..000000000 --- a/sys/src/cmd/aquarela/smbcomdir.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "headers.h" - -SmbProcessResult -smbcomcheckdirectory(SmbSession *s, SmbHeader *h, uchar *, SmbBuffer *b) -{ - char *path; - Dir *d; - uchar fmt; - SmbProcessResult pr; - SmbTree *t; - char *fullpath = nil; - - if (!smbcheckwordcount("comcheckdirectory", h, 0)) - return SmbProcessResultFormat; - - if (!smbbuffergetb(b, &fmt) - || fmt != 4 - || !smbbuffergetstring(b, h, SMB_STRING_PATH, &path)) - return SmbProcessResultFormat; - - t = smbidmapfind(s->tidmap, h->tid); - if (t == nil) { - smbseterror(s, ERRSRV, ERRinvtid); - return SmbProcessResultError; - } - - smbstringprint(&fullpath, "%s%s", t->serv->path, path); -smblogprintif(1, "smbcomcheckdirectory: statting %s\n", fullpath); - d = dirstat(fullpath); - - if (d == nil || (d->mode & DMDIR) == 0) { - smbseterror(s, ERRDOS, ERRbadpath); - pr = SmbProcessResultError; - goto done; - } - - if (access(fullpath, AREAD) < 0) { - smbseterror(s, ERRDOS, ERRbadpath); - pr = SmbProcessResultError; - goto done; - } - - pr = smbbufferputack(s->response, h, &s->peerinfo) ? SmbProcessResultReply : SmbProcessResultMisc; -done: - free(fullpath); - free(path); - free(d); - return pr; -} |