From 731de36a27e0fc6986fa5e9a95ad7c8094bfe69d Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 6 Mar 2015 23:28:24 -0600 Subject: [PATCH] Added server support for Unlink. --- server.go | 58 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/server.go b/server.go index 28ebf3e..a286327 100644 --- a/server.go +++ b/server.go @@ -265,31 +265,45 @@ func (s *server) handleFuseRequest(fuseReq bazilfuse.Request) { typed.Respond(fuseResp) case *bazilfuse.RemoveRequest: - // We don't yet support files. - if !typed.Dir { - s.logger.Println("Not supported for files. Returning ENOSYS.") - typed.RespondError(ENOSYS) - return - } + if typed.Dir { + // Convert the request. + req := &RmDirRequest{ + Header: convertHeader(typed.Header), + Parent: InodeID(typed.Header.Node), + Name: typed.Name, + } - // Convert the request. - req := &RmDirRequest{ - Header: convertHeader(typed.Header), - Parent: InodeID(typed.Header.Node), - Name: typed.Name, - } + // Call the file system. + _, err := s.fs.RmDir(ctx, req) + if err != nil { + s.logger.Println("Responding:", err) + typed.RespondError(err) + return + } - // Call the file system. - _, err := s.fs.RmDir(ctx, req) - if err != nil { - s.logger.Println("Responding:", err) - typed.RespondError(err) - return - } + // Respond successfully. + s.logger.Println("Responding OK.") + typed.Respond() + } else { + // Convert the request. + req := &UnlinkRequest{ + Header: convertHeader(typed.Header), + Parent: InodeID(typed.Header.Node), + Name: typed.Name, + } - // Respond successfully. - s.logger.Println("Responding OK.") - typed.Respond() + // Call the file system. + _, err := s.fs.Unlink(ctx, req) + if err != nil { + s.logger.Println("Responding:", err) + typed.RespondError(err) + return + } + + // Respond successfully. + s.logger.Println("Responding OK.") + typed.Respond() + } case *bazilfuse.OpenRequest: // Directory or file?