diff options
| author | Shulhan <ms@kilabit.info> | 2021-08-30 03:42:58 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2021-08-30 03:42:58 +0700 |
| commit | a5a5e7928bfe3fdca8f74fd28966265efecace0c (patch) | |
| tree | cc7b2f75a161f11480a6a8ee9a6245a6d26ee009 | |
| parent | c4cfafac030320895cb509da337006595f2a376f (diff) | |
| download | pakakeh.go-a5a5e7928bfe3fdca8f74fd28966265efecace0c.tar.xz | |
lib/memfs: fix empty ContentType if MaxFileSize is negative
A negative MaxFileSize means the content of file will not be mapped to
memory, but the content type should be detected for other operation.
| -rw-r--r-- | lib/memfs/memfs.go | 5 | ||||
| -rw-r--r-- | lib/memfs/node.go | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/lib/memfs/memfs.go b/lib/memfs/memfs.go index 850dc386..0e248099 100644 --- a/lib/memfs/memfs.go +++ b/lib/memfs/memfs.go @@ -213,11 +213,6 @@ func (mfs *MemFS) AddFile(internalPath, externalPath string) (*Node, error) { } node.generateFuncName(path) - if mfs.Opts.MaxFileSize <= 0 { - node.size = 0 - return node, nil - } - err = node.updateContent(mfs.Opts.MaxFileSize) if err != nil { return nil, err diff --git a/lib/memfs/node.go b/lib/memfs/node.go index 808d7b0b..dfef959e 100644 --- a/lib/memfs/node.go +++ b/lib/memfs/node.go @@ -89,7 +89,7 @@ func NewNode(parent *Node, fi os.FileInfo, maxFileSize int64) (node *Node, err e } node.generateFuncName(sysPath) - if node.mode.IsDir() || maxFileSize <= 0 { + if node.mode.IsDir() { node.size = 0 return node, nil } @@ -514,7 +514,7 @@ func (leaf *Node) update(newInfo os.FileInfo, maxFileSize int64) (err error) { leaf.modTime = newInfo.ModTime() leaf.size = newInfo.Size() - if newInfo.IsDir() || maxFileSize <= 0 { + if newInfo.IsDir() { return nil } @@ -525,6 +525,10 @@ func (leaf *Node) update(newInfo os.FileInfo, maxFileSize int64) (err error) { // updateContent read the content of file. // func (leaf *Node) updateContent(maxFileSize int64) (err error) { + if maxFileSize < 0 { + // Negative maxFileSize means content will not be read. + return nil + } if leaf.size > maxFileSize { return nil } |
