summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2021-08-30 03:42:58 +0700
committerShulhan <ms@kilabit.info>2021-08-30 03:42:58 +0700
commita5a5e7928bfe3fdca8f74fd28966265efecace0c (patch)
treecc7b2f75a161f11480a6a8ee9a6245a6d26ee009
parentc4cfafac030320895cb509da337006595f2a376f (diff)
downloadpakakeh.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.go5
-rw-r--r--lib/memfs/node.go8
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
}