diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2012-01-12 15:15:25 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2012-01-12 15:15:25 +0100 |
commit | 260fcc61c01b32c7b878063ca9dd7c9a118981bf (patch) | |
tree | 1a36107db2ae2ab3ee6c04d215e71825ad25fd57 | |
parent | 577d31ab137f300e8b6fcb25bbb206777fb8d557 (diff) |
fix wrong use of qid.type == QTDIR comparsion
-rw-r--r-- | sys/src/cmd/hgfs/fs.c | 4 | ||||
-rw-r--r-- | sys/src/cmd/ip/cifsd/dir.c | 2 | ||||
-rw-r--r-- | sys/src/cmd/ip/cifsd/file.c | 2 | ||||
-rw-r--r-- | sys/src/cmd/ip/cifsd/smb.c | 8 | ||||
-rw-r--r-- | sys/src/cmd/ip/cifsd/util.c | 4 | ||||
-rw-r--r-- | sys/src/cmd/ip/torrent.c | 2 | ||||
-rw-r--r-- | sys/src/cmd/webfs/fs.c | 2 |
7 files changed, 13 insertions, 11 deletions
diff --git a/sys/src/cmd/hgfs/fs.c b/sys/src/cmd/hgfs/fs.c index 874687d33..cd412a7fd 100644 --- a/sys/src/cmd/hgfs/fs.c +++ b/sys/src/cmd/hgfs/fs.c @@ -240,7 +240,7 @@ fsmkdir(Dir *d, int level, void *aux) fsmkqid(&d->qid, level, aux); d->mode = 0444; - if(d->qid.type == QTDIR) + if(d->qid.type & QTDIR) d->mode |= DMDIR | 0111; ri = nil; @@ -405,7 +405,7 @@ fswalk1(Fid *fid, char *name, Qid *qid) Revfile *rf; int i, level; - if(!(fid->qid.type&QTDIR)) + if((fid->qid.type & QTDIR) == 0) return "walk in non-directory"; rf = fid->aux; diff --git a/sys/src/cmd/ip/cifsd/dir.c b/sys/src/cmd/ip/cifsd/dir.c index 91db8506a..0b2d5db72 100644 --- a/sys/src/cmd/ip/cifsd/dir.c +++ b/sys/src/cmd/ip/cifsd/dir.c @@ -160,7 +160,7 @@ xdirread0(char **path, int (*namecmp)(char *, char *), Dir **d) n = -1; if(fd < 0 || t == nil) goto out; - if(t->qid.type != QTDIR){ + if((t->qid.type & QTDIR) == 0){ werrstr("not a directory"); goto out; } diff --git a/sys/src/cmd/ip/cifsd/file.c b/sys/src/cmd/ip/cifsd/file.c index 9fc8c6c7d..c43dbc782 100644 --- a/sys/src/cmd/ip/cifsd/file.c +++ b/sys/src/cmd/ip/cifsd/file.c @@ -122,7 +122,7 @@ noaccess: goto out; } - isdir = d->qid.type == QTDIR; + isdir = (d->qid.type & QTDIR) != 0; switch(cdisp){ case FILE_SUPERSEDE: act = FILE_SUPERSEDED; diff --git a/sys/src/cmd/ip/cifsd/smb.c b/sys/src/cmd/ip/cifsd/smb.c index 3b0eadb1f..160023adb 100644 --- a/sys/src/cmd/ip/cifsd/smb.c +++ b/sys/src/cmd/ip/cifsd/smb.c @@ -383,7 +383,7 @@ errout: xcmd, 0, nfid, act, tofiletime(d->mtime), tofiletime(d->atime), tofiletime(d->mtime), tofiletime(d->mtime), extfileattr(d), allocsize(d->length, t->share->blocksize), - d->length, f->rtype, d->qid.type == QTDIR, &r->rp)){ + d->length, f->rtype, (d->qid.type & QTDIR) != 0, &r->rp)){ delfid(t, nfid); r->respond(r, STATUS_INVALID_SMB); } else @@ -911,7 +911,7 @@ smbcheckdirectory(Req *r, uchar *h, uchar *p, uchar *e) r->respond(r, smbmkerror()); goto out; } - if(d->qid.type != QTDIR){ + if((d->qid.type & QTDIR) == 0){ r->respond(r, STATUS_OBJECT_PATH_NOT_FOUND); goto out; } @@ -1057,7 +1057,7 @@ qpackdir(Req *, Dir *d, Tree *t, File *f, int level, uchar *b, uchar *p, uchar * alen = allocsize(dlen, share->blocksize); atime = tofiletime(d->atime); mtime = tofiletime(d->mtime); - isdir = d->qid.type == QTDIR; + isdir = (d->qid.type & QTDIR) != 0; delete = f && deletedfile(f); link = !delete; @@ -1205,7 +1205,7 @@ setfilepathinformation(Req *r, Dir *d, File *f, char *path, int level, uchar *b, case 0x0104: /* SMB_SET_FILE_END_OF_FILE_INFO */ if(f == nil || !unpack(b, p, e, "v", &len)) goto unsup; - if(d->qid.type == QTDIR) + if(d->qid.type & QTDIR) return STATUS_OS2_INVALID_ACCESS; if(len != -1LL) nd.length = len; diff --git a/sys/src/cmd/ip/cifsd/util.c b/sys/src/cmd/ip/cifsd/util.c index e168eb1d6..5fed65943 100644 --- a/sys/src/cmd/ip/cifsd/util.c +++ b/sys/src/cmd/ip/cifsd/util.c @@ -144,7 +144,9 @@ extfileattr(Dir *d) { int a; - a = (d->qid.type == QTDIR) ? ATTR_DIRECTORY : ATTR_NORMAL; + a = (d->qid.type & QTDIR) ? ATTR_DIRECTORY : ATTR_NORMAL; + if((d->qid.type & QTTMP) == 0) + a |= ATTR_ARCHIVE; if((d->mode & 0222) == 0) a |= ATTR_READONLY; if(d->name[0] == '.' && d->name[1] && d->name[1] != '.') diff --git a/sys/src/cmd/ip/torrent.c b/sys/src/cmd/ip/torrent.c index 9a24155c7..5c5cb019c 100644 --- a/sys/src/cmd/ip/torrent.c +++ b/sys/src/cmd/ip/torrent.c @@ -754,7 +754,7 @@ mktorrent(int fd, char *url) if((d = dirfstat(fd)) == nil) return -1; - if(d->qid.type == QTDIR){ + if(d->qid.type & QTDIR){ free(d); werrstr("file is a directory"); return -1; diff --git a/sys/src/cmd/webfs/fs.c b/sys/src/cmd/webfs/fs.c index 8e8cabbf9..d4ed6ec73 100644 --- a/sys/src/cmd/webfs/fs.c +++ b/sys/src/cmd/webfs/fs.c @@ -211,7 +211,7 @@ fsmkdir(Dir *d, int level, void *aux) d->uid = estrdup(user); d->gid = estrdup(user); d->muid = estrdup(user); - if(d->qid.type == QTDIR) + if(d->qid.type & QTDIR) d->mode |= DMDIR | 0111; switch(level){ case Qheader: |