commit 690bdde4925c521b13a63c98f1c2130af8c71324
parent 42c5456c307858ab7a7a6693cfe41764a9d9006a
Author: Matsuda Kenji <info@mtkn.jp>
Date: Fri, 8 Sep 2023 14:35:05 +0900
update server.go
Diffstat:
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/file.go b/file.go
@@ -14,8 +14,9 @@ type File interface {
Parent() (File, error)
Child() ([]File, error)
}
-
+/*
type ReadDirFile interface {
File
ReadDir(int) ([]*DirEntry, error)
}
+*/
+\ No newline at end of file
diff --git a/server.go b/server.go
@@ -307,13 +307,18 @@ func sRead(s *Server, r *Req) {
return
}
if fi.IsDir() {
- de, err := fid.File.(ReadDirFile).ReadDir(-1)
+ children, err := fid.File.Child()
if err != nil {
- log.Printf("read dir: %v", err)
+ log.Printf("get children: %v", err)
}
- for k := int(ifcall.Offset()); k < len(de); k++ {
- e := de[k]
- st := e.Sys().(*Stat)
+ for k := int(ifcall.Offset()); k < len(children); k++ {
+ fi, err := children[k].Stat()
+ if err != nil {
+ log.Printf("stat: %v", err)
+ respond(r, fmt.Errorf("internal error"))
+ return
+ }
+ st := fi.Sys().(*Stat)
buf := st.marshal()
if n+len(buf) > len(data) {
break