lib9p

Go 9P library.
Log | Files | Refs

commit cefa3217834dcb1590b562f7365bcc5eed199b3f
parent ca0063c278bd0379f726fd36a8454eaed6f1b759
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Thu,  7 Sep 2023 10:14:33 +0900

update numfs.go

Diffstat:
Mcmd/numfs.go | 76+++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 37 insertions(+), 39 deletions(-)

diff --git a/cmd/numfs.go b/cmd/numfs.go @@ -60,7 +60,42 @@ type numFile struct { } func (f *numFile) Stat() (fs.FileInfo, error) { - return &lib9p.FileInfo{Stat: *lib9p.StatFromFile(f)}, nil + var stat lib9p.Stat + stat.Type = 0 + stat.Dev = 0 + if f.id == -1 { + stat.Qid = lib9p.Qid{ + Type: lib9p.QTDIR, + Vers: 0, + Path: ^uint64(0), + } + } else { + stat.Qid = lib9p.Qid{ + Type: lib9p.QTFILE, + Vers: 0, + Path: uint64(f.id), + } + } + var mode lib9p.FileMode + if f.id == -1 { + mode |= lib9p.DMDIR + } + mode |= 0444 + stat.Mode = mode + stat.Atime = 0 + stat.Mtime = 0 + var length int64 + if f.id == -1 { + length = 0 + } else { + length = int64(len(f.text)) + } + stat.Length = length + stat.Name = fmt.Sprintf("%d", f.id) + stat.Uid = "kenji" + stat.Gid = "kenji" + stat.Muid = "kenji" + return &lib9p.FileInfo{stat}, nil } func (f *numFile) Read(p []byte) (int, error) { @@ -81,43 +116,7 @@ func (f *numFile) PathName() string { } return f.text } -func (f *numFile) Type() uint16 { return 0 } -func (f *numFile) Dev() uint32 { return 0 } -func (f *numFile) Qid() lib9p.Qid { - if f.id == -1 { - return lib9p.Qid{ - Type: lib9p.QTDIR, - Vers: 0, - Path: ^uint64(0), - } - } - return lib9p.Qid{ - Type: lib9p.QTFILE, - Vers: 0, - Path: uint64(f.id), - } -} -func (f *numFile) Mode() lib9p.FileMode { - var mode lib9p.FileMode - if f.id == -1 { - mode |= lib9p.DMDIR - } - mode |= 0444 - return mode -} -func (f *numFile) Atime() uint32 { return 0 } -func (f *numFile) Mtime() uint32 { return 0 } -func (f *numFile) Length() int64 { - if f.id == -1 { - return 0 - } else { - return int64(len(f.text)) - } -} -func (f *numFile) Name() string { return fmt.Sprintf("%d", f.id) } -func (f *numFile) Uid() string { return "kenji" } -func (f *numFile) Gid() string { return "kenji" } -func (f *numFile) Muid() string { return "kenji" } + func (f *numFile) ReadAt(p []byte, off int64) (n int, err error) { return bytes.NewReader([]byte(f.text)).ReadAt(p, off) } @@ -131,7 +130,6 @@ 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