lib9p

Go 9P library.
Log | Files | Refs | LICENSE

commit 78681af6d1425e31a68f126aaf0ad7a15bc25e3d
parent 371a535dcb57966f91082e303d5ebb8a85570a97
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Wed, 15 Nov 2023 15:27:00 +0900

update semfs

Diffstat:
Mcmd/semfs/fs.go | 39++++++++++++++++++++-------------------
Mserver.go | 1+
2 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/cmd/semfs/fs.go b/cmd/semfs/fs.go @@ -39,39 +39,40 @@ func (fsys *semFS) OpenFile(name string, omode lib9p.OpenMode) (lib9p.File, erro } } -func (root *semFS) Stat() (fs.FileInfo, error) { - t := uint32(time.Now().Unix()) - return &lib9p.FileInfo{Stat: lib9p.Stat{ - Qid: lib9p.Qid{Type: lib9p.QTDIR, Vers: 0, Path: 0}, - Mode: fs.ModeDir | 0777, - Atime: t, - Mtime: t, - Length: 0, - Name: ".", - }}, nil -} - -func (root *semFS) Close() error { return nil } -func (root *semFS) Create(name string, uid string, mode lib9p.OpenMode, perm lib9p.FileMode) (lib9p.File, error) { - for _, f := range root.semfiles { +func (fsys *semFS) Create(name string, uid string, mode lib9p.OpenMode, perm lib9p.FileMode) (lib9p.File, error) { + for _, f := range fsys.semfiles { if f.name == name { return nil, errors.New("file already exists") } } ctx, cancel := context.WithCancel(context.Background()) newfile := &semFile{ - fs: root, + fs: fsys, name: name, sem: 0, - path: uint64(root.lastpath+1), + path: uint64(fsys.lastpath+1), cancel: cancel, } newfile.start(ctx) - root.semfiles[root.lastpath+1] = newfile - root.lastpath++ + fsys.semfiles[fsys.lastpath+1] = newfile + fsys.lastpath++ return newfile, nil } +func (root *semFS) Stat() (fs.FileInfo, error) { + t := uint32(time.Now().Unix()) + return &lib9p.FileInfo{Stat: lib9p.Stat{ + Qid: lib9p.Qid{Type: lib9p.QTDIR, Vers: 0, Path: 0}, + Mode: fs.ModeDir | 0777, + Atime: t, + Mtime: t, + Length: 0, + Name: ".", + }}, nil +} + +func (root *semFS) Close() error { return nil } + func (root *semFS) Read(p []byte) (n int, err error) { return 0, errors.New("is a directory") } diff --git a/server.go b/server.go @@ -533,6 +533,7 @@ func sCreate(ctx context.Context, s *Server, r *Req) { } Respond(ctx, r, nil) } + func rCreate(r *Req, err error) { if err != nil { setError(r, err)