@cryptotaxi247 / kubo / commits / ddc8dff73

serialfile: Explicit err on unrecognized file type

So that ipfs add on daemon no longer blocks License: MIT Signed-off-by: rht <rhtbot@gmail.com>

rht committed Sep 3, 2015 at 17:18 UTC ddc8dff7368b4e5ce31596513666ebc6c1373381
1 file changed +13 -2
commands/files/serialfile.go
+13 -2
@@ -1,6 +1,7 @@
1 package files
2
3 import (
4 + "fmt"
5 "io"
6 "os"
7 fp "path/filepath"
@@ -26,13 +27,18 @@ type serialFile struct {
27 }
28
29 func NewSerialFile(name, path string, stat os.FileInfo) (File, error) {
29 - if stat.Mode()&os.ModeSymlink != 0 {
30 + switch mode := stat.Mode(); {
31 + case mode.IsDir() || mode.IsRegular():
32 + break
33 + case mode&os.ModeSymlink != 0:
34 target, err := os.Readlink(path)
35 if err != nil {
36 return nil, err
37 }
38
39 return NewLinkFile("", path, target, stat), nil
40 + default:
41 + return nil, fmt.Errorf("Unrecognized file type for %s: %s", stat.Name(), mode.String())
42 }
43
44 file, err := os.Open(path)
@@ -97,13 +103,18 @@ func (f *serialFile) NextFile() (File, error) {
103 return nil, err
104 }
105
100 - if st.Mode()&os.ModeSymlink != 0 {
106 + switch mode := st.Mode(); {
107 + case mode.IsDir() || mode.IsRegular():
108 + break
109 + case mode&os.ModeSymlink != 0:
110 f.current = nil
111 target, err := os.Readlink(filePath)
112 if err != nil {
113 return nil, err
114 }
115 return NewLinkFile(fileName, filePath, target, st), nil
116 + default:
117 + return nil, fmt.Errorf("Unrecognized file type for %s: %s", st.Name(), mode.String())
118 }
119
120 file, err := os.Open(filePath)