Only connected devices are available devices

This commit is contained in:
Audrius Butkevicius 2014-10-31 23:41:18 +00:00
parent 76900ae291
commit fc47562983

View File

@ -1273,6 +1273,11 @@ func (m *Model) RemoteLocalVersion(folder string) uint64 {
}
func (m *Model) availability(folder string, file string) []protocol.DeviceID {
// Acquire this lock first, as the value returned from foldersFiles can
// gen heavily modified on Close()
m.pmut.RLock()
defer m.pmut.RUnlock()
m.fmut.RLock()
fs, ok := m.folderFiles[folder]
m.fmut.RUnlock()
@ -1280,7 +1285,14 @@ func (m *Model) availability(folder string, file string) []protocol.DeviceID {
return nil
}
return fs.Availability(file)
availableDevices := []protocol.DeviceID{}
for _, device := range fs.Availability(file) {
_, ok := m.protoConn[device]
if ok {
availableDevices = append(availableDevices, device)
}
}
return availableDevices
}
func (m *Model) String() string {