lib9p

Go 9P library.
Log | Files | Refs

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:
Mcmd/numfs/main.go | 2+-
Mdiskfs/file.go | 3++-
Mfcall.go | 2+-
Mfs.go | 16++++++++--------
Mserver.go | 4++--
Mstat.go | 15++++-----------
Mtest_fs.go | 4++--
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",