commit cf3e5beb25ee2964aaecd563e0ee07028e8fa71c
parent 8a334afb5c76eac5ef7bed98360717238568355b
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sun, 3 Sep 2023 10:17:43 +0900
change DirEntry
Diffstat:
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 }