lib/model: Check availability later to catch renames (#5097)
This commit is contained in:
committed by
Audrius Butkevicius
parent
9028969617
commit
ff3cbdc90d
@@ -282,7 +282,7 @@ func (l FolderDeviceConfigurationList) Len() int {
|
|||||||
return len(l)
|
return len(l)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FolderConfiguration) CheckFreeSpace() (err error) {
|
func (f *FolderConfiguration) CheckFreeSpace() error {
|
||||||
return checkFreeSpace(f.MinDiskFree, f.Filesystem())
|
return checkFreeSpace(f.MinDiskFree, f.Filesystem())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -349,18 +349,8 @@ func (f *sendReceiveFolder) processNeeded(ignores *ignore.Matcher, folderFiles *
|
|||||||
changed++
|
changed++
|
||||||
|
|
||||||
case file.Type == protocol.FileInfoTypeFile:
|
case file.Type == protocol.FileInfoTypeFile:
|
||||||
// Queue files for processing after directories and symlinks, if
|
// Queue files for processing after directories and symlinks.
|
||||||
// it has availability.
|
f.queue.Push(file.Name, file.Size, file.ModTime())
|
||||||
|
|
||||||
devices := folderFiles.Availability(file.Name)
|
|
||||||
for _, dev := range devices {
|
|
||||||
if _, ok := f.model.Connection(dev); ok {
|
|
||||||
f.queue.Push(file.Name, file.Size, file.ModTime())
|
|
||||||
changed++
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
f.newError("pull", file.Name, errNotAvailable)
|
|
||||||
|
|
||||||
case runtime.GOOS == "windows" && file.IsSymlink():
|
case runtime.GOOS == "windows" && file.IsSymlink():
|
||||||
file.SetUnsupported(f.shortID)
|
file.SetUnsupported(f.shortID)
|
||||||
@@ -492,8 +482,16 @@ nextFile:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle the file normally, by coping and pulling, etc.
|
devices := folderFiles.Availability(fileName)
|
||||||
f.handleFile(fi, copyChan, finisherChan, dbUpdateChan)
|
for _, dev := range devices {
|
||||||
|
if _, ok := f.model.Connection(dev); ok {
|
||||||
|
changed++
|
||||||
|
// Handle the file normally, by coping and pulling, etc.
|
||||||
|
f.handleFile(fi, copyChan, finisherChan, dbUpdateChan)
|
||||||
|
continue nextFile
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f.newError("pull", fileName, errNotAvailable)
|
||||||
}
|
}
|
||||||
|
|
||||||
return changed, fileDeletions, dirDeletions, nil
|
return changed, fileDeletions, dirDeletions, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user