ref: 2d82fa89d40ad04944ab45fa28ce6bc3cdc1b756
parent: a2bc51f7f3479008175e41367105e7ab2516318e
author: penny <penny@limitedideas.org>
date: Thu Nov 27 16:58:12 EST 2025
a few more touches
--- a/main.go
+++ b/main.go
@@ -15,8 +15,6 @@
type snarfile struct {fs.BaseFile
- real *os.File
- realwrite *os.File
snarfStream fs.Stream
mu sync.Mutex
}
@@ -41,11 +39,18 @@
}
func (f *snarfile) Read(fid uint64, offset uint64, count uint64) ([]byte, error) {- real, _ := os.Open("/mnt/snarflogger/rsnarf")+ real, err := os.Open("/mnt/snarflogger/rsnarf")+ if err != nil {+ return nil, err
+ }
defer real.Close()
- var reader io.Reader = real
- content, err := io.ReadAll(reader)
- return content, err
+
+ buf := make([]byte, count)
+ n, err := real.ReadAt(buf, int64(offset))
+ if err != nil && err != io.EOF {+ return nil, err
+ }
+ return buf[:n], nil
}
func newSnarf(fsys *fs.FS, name, uid, gid string, perm uint32, real *os.File, realwrite *os.File, stream fs.Stream) *snarfile {@@ -52,8 +57,6 @@
stat := fsys.NewStat(name, uid, gid, perm)
return &snarfile{BaseFile: *fs.NewBaseFile(stat),
- real: real,
- realwrite: realwrite,
snarfStream: stream,
}
}
--
⑨