From 4bf575151ce863d33143c20ef67482638b94de6c Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 27 Feb 2015 13:38:45 +1100 Subject: [PATCH] Added partial support for Getattr in server. --- server.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/server.go b/server.go index e910932..c9f3a0b 100644 --- a/server.go +++ b/server.go @@ -83,6 +83,29 @@ func (s *server) handleFuseRequest(fuseReq bazilfuse.Request) { s.logger.Println("Responding:", fuseResp) typed.Respond(fuseResp) + case *bazilfuse.GetattrRequest: + // Convert the request. + req := &GetInodeAttributesRequest{ + Inode: InodeID(typed.Header.Node), + } + + // Call the file system. + resp, err := s.fs.GetInodeAttributes(ctx, req) + if err != nil { + s.logger.Print("Responding:", err) + typed.RespondError(err) + return + } + + // Convert the response. + fuseResp := &bazilfuse.GetattrResponse{ + Attr: resp.Attributes, + AttrValid: resp.AttributesExpiration.Sub(s.clock.Now()), + } + + s.logger.Print("Responding:", fuseResp) + typed.Respond(fuseResp) + case *bazilfuse.OpenRequest: // We support only directories at this point. if !typed.Dir {