From 5455e35b354f0f4659c073dc99990bd59b469257 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Wed, 4 Mar 2015 15:18:09 +1100 Subject: [PATCH] Added server support for WriteFile. --- server.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/server.go b/server.go index 37ef2ac..cc343b9 100644 --- a/server.go +++ b/server.go @@ -355,6 +355,32 @@ func (s *server) handleFuseRequest(fuseReq bazilfuse.Request) { typed.Respond(fuseResp) } + case *bazilfuse.WriteRequest: + // Convert the request. + req := &WriteFileRequest{ + Header: convertHeader(typed.Header), + Inode: InodeID(typed.Header.Node), + Handle: HandleID(typed.Handle), + Data: typed.Data, + Offset: typed.Offset, + } + + // Call the file system. + _, err := s.fs.WriteFile(ctx, req) + if err != nil { + s.logger.Println("Responding:", err) + typed.RespondError(err) + return + } + + // Convert the response. + fuseResp := &bazilfuse.WriteResponse{ + Size: len(typed.Data), + } + + s.logger.Println("Responding:", fuseResp) + typed.Respond(fuseResp) + default: s.logger.Println("Unhandled type. Returning ENOSYS.") typed.RespondError(ENOSYS)