Ver Fonte

Merge pull request #1424 from AudriusButkevicius/scanner

Make sure we start scanning at an indexed location (fixes #1399)
Audrius Butkevicius há 11 anos atrás
pai
commit
575b62d77b
1 ficheiros alterados com 13 adições e 0 exclusões
  1. 13 0
      internal/model/model.go

+ 13 - 0
internal/model/model.go

@@ -1146,6 +1146,7 @@ func (m *Model) ScanFolder(folder string) error {
 }
 
 func (m *Model) ScanFolderSub(folder, sub string) error {
+	sub = osutil.NativeFilename(sub)
 	if p := filepath.Clean(filepath.Join(folder, sub)); !strings.HasPrefix(p, folder) {
 		return errors.New("invalid subpath")
 	}
@@ -1162,6 +1163,18 @@ func (m *Model) ScanFolderSub(folder, sub string) error {
 
 	_ = ignores.Load(filepath.Join(folderCfg.Path, ".stignore")) // Ignore error, there might not be an .stignore
 
+	// Required to make sure that we start indexing at a directory we're already
+	// aware off.
+	for sub != "" {
+		if _, ok = fs.Get(protocol.LocalDeviceID, sub); ok {
+			break
+		}
+		sub = filepath.Dir(sub)
+		if sub == "." || sub == string(filepath.Separator) {
+			sub = ""
+		}
+	}
+
 	w := &scanner.Walker{
 		Dir:          folderCfg.Path,
 		Sub:          sub,