commit ca64448d5dd94ec9ea96ae39e48cfa5ce58f34cc
parent ffb0f3d163a21b6e43ed3f0c0c942005bd0bb4c8
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sat, 14 Oct 2023 07:12:01 +0900
add walk() to client
Diffstat:
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/client2.go b/client2.go
@@ -10,9 +10,9 @@ func (c *Client) Root() File {
return c.root
}
-func Mount(r io.Reader, w io.Writer, uname, aname string) (fs FS, err error) {
+func Mount(r io.Reader, w io.Writer, uname, aname string) (fs *Client, err error) {
var (
- mSize uint32 = 8196
+ mSize uint32 = 8192
version = "9P2000"
ctx = context.TODO()
)
@@ -22,7 +22,7 @@ func Mount(r io.Reader, w io.Writer, uname, aname string) (fs FS, err error) {
if err != nil {
return nil, fmt.Errorf("version: %v", err)
}
- if rver != "version" {
+ if rver != version {
return nil, fmt.Errorf("incompatible version %s", rver)
}
if rmSize < mSize {
@@ -48,4 +48,12 @@ func Mount(r io.Reader, w io.Writer, uname, aname string) (fs FS, err error) {
c.root.parent = c.root
fid.file = c.root
return c, nil
+}
+
+func (c *Client) walk(name string) (*ClientFile, error) {
+ f, err := walkfile(c.root, name)
+ if err != nil {
+ return nil, err
+ }
+ return f.(*ClientFile), nil
}
\ No newline at end of file