lib9p

Go 9P library.
Log | Files | Refs

commit dc65cf4dbc3aa623b7f8dc10a433e136c318ceb6
parent 7e476fe8667ecec0b93ca27f7a44402aaf6dcdcb
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Tue, 29 Aug 2023 16:37:18 +0900

add numfs(wip)

Diffstat:
Acmd/numfs.go | 72++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mfile.go | 1-
2 files changed, 72 insertions(+), 1 deletion(-)

diff --git a/cmd/numfs.go b/cmd/numfs.go @@ -0,0 +1,72 @@ +package main + +import ( + "flag" + "fmt" + "io/fs" + "log" + "net" + "os" + + "lib9p" +) + +type numFS struct{} + +func (fsys *numFS) Open(name string) (lib9p.File, error) { + if name != "." { + return nil, &fs.PathError{ + Op: "open", + Path: name, + Err: fmt.Errorf("not found"), + } + } + return &numRoot{}, nil +} + +type numFile struct { + id int + text string +} + +func (f *numFile) Stat() (fs.FileInfo, error) { + +} + +type numRoot numFile + +func (root *numRoot) ReadDir() {} + +var dFlag = flag.Bool("D", false, "Prints chatty message to the stderr.") + +func main() { + flag.Parse() + if *dFlag { + lib9p.Chatty() + } + + if flag.NArg() != 0 { + fmt.Fprintf(os.Stderr, "usage: %s [-D]\n", os.Args[0]) + os.Exit(1) + } + + listener, err := net.Listen("tcp", "127.0.0.1:5640") + if err != nil { + log.Fatalf("listen tcp: %v", err) + } + + for { + conn, err := listener.Accept() + if err != nil { + log.Printf("accept connection: %v", err) + continue + } + + go handle(conn, &numFS{}) + } +} + +func handle(conn net.Conn, fs *numFS) { + srv := lib9p.NewServer(fs, 8*1024, conn, conn) + srv.Serve() +} diff --git a/file.go b/file.go @@ -3,7 +3,6 @@ package lib9p import ( "fmt" "io/fs" -// "os" "time" )