commit 96a241f06650def6339a201480e683f13f199428
parent 866613c7df3d3e940e0cce09005798153f8d1e9f
Author: Matsuda Kenji <info@mtkn.jp>
Date: Thu, 19 Oct 2023 11:01:23 +0900
delete FileMode and use fs.FileMode
Diffstat:
7 files changed, 20 insertions(+), 26 deletions(-)
diff --git a/cmd/numfs/main.go b/cmd/numfs/main.go
@@ -86,7 +86,7 @@ func (f *numFile) Stat() (*lib9p.FileInfo, error) {
}
var mode lib9p.FileMode
if f.id == -1 {
- mode |= lib9p.DMDIR
+ mode |= fs.ModeDir
}
mode |= 0444
stat.Mode = mode
diff --git a/diskfs/file.go b/diskfs/file.go
@@ -2,6 +2,7 @@ package diskfs
import (
"fmt"
+ "io/fs"
"os"
"os/user"
"path/filepath"
@@ -70,7 +71,7 @@ func (f *File) Create(name string, uid string,
}
ospath := filepath.Join(f.fs.rootPath, f.path, name)
- if perm&lib9p.DMDIR != 0 {
+ if perm&fs.ModeDir != 0 {
if err := os.Mkdir(ospath, lib9p.Mode9ToFSMode(perm)); err != nil {
return nil, fmt.Errorf("mkdir: %v", err)
}
diff --git a/fcall.go b/fcall.go
@@ -889,7 +889,7 @@ func (msg *TCreate) marshal() []byte {
func (msg *TCreate) String() string {
return fmt.Sprintf("Tcreate tag %d fid %d name %s perm %v mode 0x%x",
- msg.Tag(), msg.Fid(), msg.Name(), msg.Perm().PermString(), msg.Mode())
+ msg.Tag(), msg.Fid(), msg.Name(), permString(msg.Perm()), msg.Mode())
}
type RCreate struct {
diff --git a/fs.go b/fs.go
@@ -35,32 +35,32 @@ func FSModeToQidType(fm fs.FileMode) QidType {
func FSModeTo9Mode(mode fs.FileMode) FileMode {
mode9 := FileMode(mode & fs.ModePerm)
if mode&fs.ModeDir != 0 {
- mode9 |= DMDIR
+ mode9 |= fs.ModeDir
}
if mode&fs.ModeAppend != 0 {
- mode9 |= DMAPPEND
+ mode9 |= fs.ModeAppend
}
if mode&fs.ModeExclusive != 0 {
- mode9 |= DMEXCL
+ mode9 |= fs.ModeExclusive
}
if mode&fs.ModeTemporary != 0 {
- mode9 |= DMTMP
+ mode9 |= fs.ModeTemporary
}
return mode9
}
func Mode9ToFSMode(mode FileMode) fs.FileMode {
fsmode := fs.FileMode(mode) & fs.ModePerm
- if mode&DMDIR != 0 {
+ if mode&fs.ModeDir != 0 {
fsmode |= fs.ModeDir
}
- if mode&DMAPPEND != 0 {
+ if mode&fs.ModeAppend != 0 {
fsmode |= fs.ModeAppend
}
- if mode&DMEXCL != 0 {
+ if mode&fs.ModeExclusive != 0 {
fsmode |= fs.ModeExclusive
}
- if mode&DMTMP != 0 {
+ if mode&fs.ModeTemporary != 0 {
fsmode |= fs.ModeTemporary
}
return fsmode
diff --git a/server.go b/server.go
@@ -472,7 +472,7 @@ func sCreate(s *Server, r *Req) {
perm := ifcall.Perm()
dirperm := FSModeTo9Mode(dirstat.Mode())
- if perm&DMDIR == 0 {
+ if perm&fs.ModeDir == 0 {
perm &= ^FileMode(0666) | (dirperm & FileMode(0666))
} else {
perm &= ^FileMode(0777) | (dirperm & FileMode(0777))
@@ -814,7 +814,7 @@ func sWStat(s *Server, r *Req) {
respond(r, ErrPerm)
return
}
- if wstat.Mode&DMDIR != newStat.Mode&DMDIR {
+ if wstat.Mode&fs.ModeDir != newStat.Mode&fs.ModeDir {
respond(r, ErrPerm)
return
}
diff --git a/stat.go b/stat.go
@@ -6,19 +6,12 @@ import (
"time"
)
-type FileMode uint32
+type FileMode = fs.FileMode
-const (
- DMDIR FileMode = 0x80000000
- DMAPPEND = 0x40000000
- DMEXCL = 0x20000000
- DMTMP = 0x04000000
-)
-
-func (m FileMode) PermString() string {
+func permString(perm FileMode) string {
s := ""
for i := 6; i >= 0; i -= 3 {
- p := m >> i
+ p := perm >> i
if p&4 != 0 {
s += "r"
} else {
@@ -179,7 +172,7 @@ func (fi *FileInfo) Name() string { return fi.Stat.Name }
func (fi *FileInfo) Size() int64 { return fi.Stat.Length }
func (fi *FileInfo) Mode() fs.FileMode { return Mode9ToFSMode(fi.Stat.Mode) }
func (fi *FileInfo) ModTime() time.Time { return time.Unix(int64(fi.Stat.Mtime), 0) }
-func (fi *FileInfo) IsDir() bool { return fi.Stat.Mode&DMDIR != 0 }
+func (fi *FileInfo) IsDir() bool { return fi.Stat.Mode&fs.ModeDir != 0 }
func (fi *FileInfo) Sys() any { return &fi.Stat }
func (fi *FileInfo) Qid() Qid { return fi.Stat.Qid }
diff --git a/test_fs.go b/test_fs.go
@@ -108,7 +108,7 @@ func init() {
root: &testFile{
stat: Stat{
Qid: Qid{Path: 0, Type: QTDIR},
- Mode: FileMode(DMDIR | 0755),
+ Mode: FileMode(fs.ModeDir | 0755),
Name: "root",
Uid: "glenda",
Gid: "glenda",
@@ -140,7 +140,7 @@ func init() {
&testFile{
stat: Stat{
Qid: Qid{Path: 3, Type: QTDIR},
- Mode: FileMode(DMDIR | 0755),
+ Mode: FileMode(fs.ModeDir | 0755),
Name: "dir",
Uid: "rob",
Gid: "rob",