rollback to 1.5

This commit is contained in:
Emman 2021-12-03 15:29:44 +08:00
parent f47260760b
commit 54ee9c6f5e

View File

@ -4,7 +4,7 @@
package smx509 package smx509
import ( import (
"io/fs" "io/ioutil"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@ -34,7 +34,7 @@ func loadSystemRoots() (*CertPool, error) {
var firstErr error var firstErr error
for _, file := range files { for _, file := range files {
data, err := os.ReadFile(file) data, err := ioutil.ReadFile(file)
if err == nil { if err == nil {
roots.AppendCertsFromPEM(data) roots.AppendCertsFromPEM(data)
break break
@ -62,7 +62,7 @@ func loadSystemRoots() (*CertPool, error) {
continue continue
} }
for _, fi := range fis { for _, fi := range fis {
data, err := os.ReadFile(directory + "/" + fi.Name()) data, err := ioutil.ReadFile(directory + "/" + fi.Name())
if err == nil { if err == nil {
roots.AppendCertsFromPEM(data) roots.AppendCertsFromPEM(data)
} }
@ -76,17 +76,17 @@ func loadSystemRoots() (*CertPool, error) {
return nil, firstErr return nil, firstErr
} }
// readUniqueDirectoryEntries is like os.ReadDir but omits // readUniqueDirectoryEntries is like ioutil.ReadDir but omits
// symlinks that point within the directory. // symlinks that point within the directory.
func readUniqueDirectoryEntries(dir string) ([]fs.DirEntry, error) { func readUniqueDirectoryEntries(dir string) ([]os.FileInfo, error) {
files, err := os.ReadDir(dir) fis, err := ioutil.ReadDir(dir)
if err != nil { if err != nil {
return nil, err return nil, err
} }
uniq := files[:0] uniq := fis[:0]
for _, f := range files { for _, fi := range fis {
if !isSameDirSymlink(f, dir) { if !isSameDirSymlink(fi, dir) {
uniq = append(uniq, f) uniq = append(uniq, fi)
} }
} }
return uniq, nil return uniq, nil
@ -94,10 +94,10 @@ func readUniqueDirectoryEntries(dir string) ([]fs.DirEntry, error) {
// isSameDirSymlink reports whether fi in dir is a symlink with a // isSameDirSymlink reports whether fi in dir is a symlink with a
// target not containing a slash. // target not containing a slash.
func isSameDirSymlink(f fs.DirEntry, dir string) bool { func isSameDirSymlink(fi os.FileInfo, dir string) bool {
if f.Type()&fs.ModeSymlink == 0 { if fi.Mode()&os.ModeSymlink == 0 {
return false return false
} }
target, err := os.Readlink(filepath.Join(dir, f.Name())) target, err := os.Readlink(filepath.Join(dir, fi.Name()))
return err == nil && !strings.Contains(target, "/") return err == nil && !strings.Contains(target, "/")
} }