Skip to content

Commit

Permalink
address most of CR comments
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
  • Loading branch information
whyrusleeping committed Sep 2, 2015
1 parent 9bbd9b0 commit 4bcacc5
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 31 deletions.
4 changes: 3 additions & 1 deletion commands/files/multipartfile.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ const (
multipartFormdataType = "multipart/form-data"
multipartMixedType = "multipart/mixed"

applicationSymlink = "application/symlink"

contentTypeHeader = "Content-Type"
)

Expand All @@ -31,7 +33,7 @@ func NewFileFromPart(part *multipart.Part) (File, error) {
}

contentType := part.Header.Get(contentTypeHeader)
if contentType == "symlink" {
if contentType == applicationSymlink {
out, err := ioutil.ReadAll(part)
if err != nil {
return nil, err
Expand Down
3 changes: 1 addition & 2 deletions commands/http/multifilereader.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ func (mfr *MultiFileReader) Read(buf []byte) (written int, err error) {
if s, ok := file.(*files.Symlink); ok {
mfr.currentFile = s

// TODO(why): this is a hack. pick a real contentType
contentType = "symlink"
contentType = "application/symlink"

This comment has been minimized.

Copy link
@grawity

grawity Sep 5, 2015

GLib uses inode/symlink (and inode/directory, etc.)

} else if file.IsDirectory() {
// if file is a directory, create a multifilereader from it
// (using 'multipart/mixed')
Expand Down
45 changes: 17 additions & 28 deletions fuse/readonly/readonly_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
"io"
"os"
"syscall"
"time"

fuse "github.com/ipfs/go-ipfs/Godeps/_workspace/src/bazil.org/fuse"
fs "github.com/ipfs/go-ipfs/Godeps/_workspace/src/bazil.org/fuse/fs"
Expand Down Expand Up @@ -60,8 +59,6 @@ func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error) {
return nil, fuse.ENOENT
}

log.Error("RESOLVE: ", name)
ctx, _ = context.WithTimeout(ctx, time.Second/2)
nd, err := s.Ipfs.Resolver.ResolvePath(ctx, path.Path(name))
if err != nil {
// todo: make this error more versatile.
Expand Down Expand Up @@ -100,35 +97,27 @@ func (s *Node) Attr(ctx context.Context, a *fuse.Attr) error {
}
switch s.cached.GetType() {
case ftpb.Data_Directory:
*a = fuse.Attr{
Mode: os.ModeDir | 0555,
Uid: uint32(os.Getuid()),
Gid: uint32(os.Getgid()),
}
a.Mode = os.ModeDir | 0555
a.Uid = uint32(os.Getuid())
a.Gid = uint32(os.Getgid())
case ftpb.Data_File:
size := s.cached.GetFilesize()
*a = fuse.Attr{
Mode: 0444,
Size: uint64(size),
Blocks: uint64(len(s.Nd.Links)),
Uid: uint32(os.Getuid()),
Gid: uint32(os.Getgid()),
}
a.Mode = 0444
a.Size = uint64(size)
a.Blocks = uint64(len(s.Nd.Links))
a.Uid = uint32(os.Getuid())
a.Gid = uint32(os.Getgid())
case ftpb.Data_Raw:
*a = fuse.Attr{
Mode: 0444,
Size: uint64(len(s.cached.GetData())),
Blocks: uint64(len(s.Nd.Links)),
Uid: uint32(os.Getuid()),
Gid: uint32(os.Getgid()),
}
a.Mode = 0444
a.Size = uint64(len(s.cached.GetData()))
a.Blocks = uint64(len(s.Nd.Links))
a.Uid = uint32(os.Getuid())
a.Gid = uint32(os.Getgid())
case ftpb.Data_Symlink:
*a = fuse.Attr{
Mode: 0777 | os.ModeSymlink,
Size: uint64(len(s.cached.GetData())),
Uid: uint32(os.Getuid()),
Gid: uint32(os.Getgid()),
}
a.Mode = 0777 | os.ModeSymlink
a.Size = uint64(len(s.cached.GetData()))
a.Uid = uint32(os.Getuid())
a.Gid = uint32(os.Getgid())

default:
return fmt.Errorf("Invalid data type - %s", s.cached.GetType())
Expand Down

0 comments on commit 4bcacc5

Please sign in to comment.