walk netdb dir
This commit is contained in:
@@ -195,23 +195,20 @@ func NewLocalNetDb(path string) *LocalNetDbImpl {
|
||||
}
|
||||
|
||||
func (db *LocalNetDbImpl) RouterInfos() (routerInfos []routerInfo, err error) {
|
||||
var src []os.FileInfo
|
||||
if src, err = ioutil.ReadDir(db.Path); nil != err {
|
||||
return
|
||||
}
|
||||
|
||||
// randomize the file order
|
||||
files := make([]os.FileInfo, len(src))
|
||||
perm := rand.Perm(len(src))
|
||||
for i, v := range perm {
|
||||
files[v] = src[i]
|
||||
}
|
||||
|
||||
r, _ := regexp.Compile("^routerInfo-[A-Za-z0-9-=~]+.dat$")
|
||||
|
||||
for _, file := range files {
|
||||
if r.MatchString(file.Name()) {
|
||||
riBytes, err := ioutil.ReadFile(filepath.Join(db.Path, file.Name()))
|
||||
files := make(map[string]os.FileInfo)
|
||||
walkpath := func(path string, f os.FileInfo, err error) error {
|
||||
if r.MatchString(f.Name()) {
|
||||
files[path] = f
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
filepath.Walk(db.Path, walkpath)
|
||||
|
||||
for path, file := range files {
|
||||
riBytes, err := ioutil.ReadFile(path)
|
||||
if nil != err {
|
||||
log.Println(err)
|
||||
continue
|
||||
@@ -222,7 +219,6 @@ func (db *LocalNetDbImpl) RouterInfos() (routerInfos []routerInfo, err error) {
|
||||
Data: riBytes,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user