Selaa lähdekoodia

gui, lib/db: Correct space accounting of symlinks, for "out of sync" status

Jakob Borg 8 vuotta sitten
vanhempi
sitoutus
a9b03de99a

+ 1 - 1
gui/default/syncthing/core/syncthingController.js

@@ -654,7 +654,7 @@ angular.module('syncthing.core')
             if (state === 'error') {
                 return 'stopped'; // legacy, the state is called "stopped" in the GUI
             }
-            if (state === 'idle' && $scope.model[folderCfg.id].needFiles + $scope.model[folderCfg.id].needDeletes > 0) {
+            if (state === 'idle' && $scope.neededItems(folderCfg.id) > 0) {
                 return 'outofsync';
             }
             if (state === 'scanning') {

+ 2 - 2
lib/db/set.go

@@ -73,7 +73,7 @@ func (s *sizeTracker) addFile(f FileIntf) {
 	switch {
 	case f.IsDeleted():
 		s.Deleted++
-	case f.IsDirectory():
+	case f.IsDirectory() && !f.IsSymlink():
 		s.Directories++
 	case f.IsSymlink():
 		s.Symlinks++
@@ -93,7 +93,7 @@ func (s *sizeTracker) removeFile(f FileIntf) {
 	switch {
 	case f.IsDeleted():
 		s.Deleted--
-	case f.IsDirectory():
+	case f.IsDirectory() && !f.IsSymlink():
 		s.Directories--
 	case f.IsSymlink():
 		s.Symlinks--

+ 1 - 1
lib/db/structs.go

@@ -50,7 +50,7 @@ func (f FileInfoTruncated) FileSize() int64 {
 	if f.Deleted {
 		return 0
 	}
-	if f.IsDirectory() {
+	if f.IsDirectory() || f.IsSymlink() {
 		return protocol.SyntheticDirectorySize
 	}
 	return f.Size

+ 1 - 1
lib/protocol/bep_extensions.go

@@ -63,7 +63,7 @@ func (f FileInfo) FileSize() int64 {
 	if f.Deleted {
 		return 0
 	}
-	if f.IsDirectory() {
+	if f.IsDirectory() || f.IsSymlink() {
 		return SyntheticDirectorySize
 	}
 	return f.Size