lib9p

Go 9P library.
Log | Files | Refs

commit cf3e5beb25ee2964aaecd563e0ee07028e8fa71c
parent 8a334afb5c76eac5ef7bed98360717238568355b
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Sun,  3 Sep 2023 10:17:43 +0900

change DirEntry

Diffstat:
Mcmd/numfs.go | 3++-
Mdiskfs/file.go | 4+---
Mfile.go | 6+++++-
Miofs/file.go | 4+---
Mserver.go | 7+------
Mstat.go | 4++++
6 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/cmd/numfs.go b/cmd/numfs.go @@ -131,11 +131,12 @@ func (f *numFile) ReadDir(n int) ([]*lib9p.DirEntry, error) { } de := make([]*lib9p.DirEntry, n) for i := 0; i < len(root.children) && i < n; i++ { + log.Printf("ReadDir: %d\n", i) stat, err := root.children[i].Stat() if err != nil { return de, err } - de[i] = &lib9p.DirEntry{stat} + de[i] = &lib9p.DirEntry{stat.(*lib9p.FileInfo).Stat} } return de, nil } diff --git a/diskfs/file.go b/diskfs/file.go @@ -156,9 +156,7 @@ func (f *File) ReadDir(n int) ([]*lib9p.DirEntry, error) { return nil, err } id := idFromInfo(info) - de[i] = &lib9p.DirEntry{ - FileInfo: &lib9p.FileInfo{*fiStat(f.fs.qidPool, id, info)}, - } + de[i] = &lib9p.FileInfo{*fiStat(f.fs.qidPool, id, info)} } return de, nil } diff --git a/file.go b/file.go @@ -6,7 +6,7 @@ import ( type File interface { fs.File - PathName() string + PathName() string // path from the root of the fs which this file belongs to. Type() uint16 Dev() uint32 @@ -26,11 +26,15 @@ type ReadDirFile interface { ReadDir(int) ([]*DirEntry, error) } +/* type DirEntry struct { FileInfo fs.FileInfo } +type DirEntry fs.FileInfo + func (e *DirEntry) Name() string { return e.FileInfo.Name() } func (e *DirEntry) IsDir() bool { return e.FileInfo.IsDir() } func (e *DirEntry) Type() fs.FileMode { return e.FileInfo.Mode().Type() } func (e *DirEntry) Info() (fs.FileInfo, error) { return e.FileInfo, nil } +*/ diff --git a/iofs/file.go b/iofs/file.go @@ -144,9 +144,7 @@ func (f *File) ReadDir(n int) ([]*lib9p.DirEntry, error) { fpath := path.Join(f.path, info.Name()) - de[i] = &lib9p.DirEntry{ - FileInfo: &lib9p.FileInfo{*fiStat(f.fs.qidPool, fileID(fpath), info)}, - } + de[i] = &lib9p.FileInfo{*fiStat(f.fs.qidPool, fileID(fpath), info)} } return de, nil } diff --git a/server.go b/server.go @@ -312,12 +312,7 @@ func sRead(s *Server, r *Req) { } for k := int(ifcall.Offset()); k < len(de); k++ { e := de[k] - info, err := e.Info() - if err != nil { - log.Printf("info: %v", err) - continue - } - st := info.Sys().(*Stat) + st := e.Sys().(*Stat) buf := st.marshal() if n+len(buf) > len(data) { break diff --git a/stat.go b/stat.go @@ -134,3 +134,7 @@ func (fi *FileInfo) ModTime() time.Time { return time.Unix(int64(fi.Stat.Mtime), func (fi *FileInfo) IsDir() bool { return fi.Stat.Mode&DMDIR != 0 } func (fi *FileInfo) Sys() any { return &fi.Stat } func (fi *FileInfo) Qid() Qid { return fi.Stat.Qid } + +type DirEntry = FileInfo + +func (de *DirEntry) Info() fs.FileInfo { return de }