Browse Source

There should be only One

Jakob Borg 11 years ago
parent
commit
bcdc3ecdae
3 changed files with 4 additions and 16 deletions
  1. 1 1
      model/puller.go
  2. 0 12
      model/util.go
  3. 3 3
      scanner/walk.go

+ 1 - 1
model/puller.go

@@ -245,7 +245,7 @@ func (p *puller) fixupDirectories() {
 			return nil
 		}
 
-		if !permsEqual(cur.Flags, uint32(info.Mode())) {
+		if !scanner.PermsEqual(cur.Flags, uint32(info.Mode())) {
 			err := os.Chmod(path, os.FileMode(cur.Flags)&os.ModePerm)
 			if err != nil {
 				l.Warnln("Restoring folder flags: %q: %v", path, err)

+ 0 - 12
model/util.go

@@ -109,15 +109,3 @@ func compareClusterConfig(local, remote protocol.ClusterConfigMessage) error {
 
 	return nil
 }
-
-func permsEqual(a, b uint32) bool {
-	switch runtime.GOOS {
-	case "windows":
-		// There is only writeable and read only, represented for user, group
-		// and other equally. We only compare against user.
-		return a&0600 == b&0600
-	default:
-		// All bits count
-		return a&0777 == b&0777
-	}
-}

+ 3 - 3
scanner/walk.go

@@ -162,7 +162,7 @@ func (w *Walker) walkAndHashFiles(res *[]File, ign map[string][]string) filepath
 		if info.Mode().IsDir() {
 			if w.CurrentFiler != nil {
 				cf := w.CurrentFiler.CurrentFile(rn)
-				if cf.Modified == info.ModTime().Unix() && protocol.IsDirectory(cf.Flags) && permsEqual(cf.Flags, uint32(info.Mode())) {
+				if cf.Modified == info.ModTime().Unix() && protocol.IsDirectory(cf.Flags) && PermsEqual(cf.Flags, uint32(info.Mode())) {
 					if debug {
 						l.Debugln("unchanged:", cf)
 					}
@@ -186,7 +186,7 @@ func (w *Walker) walkAndHashFiles(res *[]File, ign map[string][]string) filepath
 		if info.Mode().IsRegular() {
 			if w.CurrentFiler != nil {
 				cf := w.CurrentFiler.CurrentFile(rn)
-				if !protocol.IsDeleted(cf.Flags) && cf.Modified == info.ModTime().Unix() && permsEqual(cf.Flags, uint32(info.Mode())) {
+				if !protocol.IsDeleted(cf.Flags) && cf.Modified == info.ModTime().Unix() && PermsEqual(cf.Flags, uint32(info.Mode())) {
 					if debug {
 						l.Debugln("unchanged:", cf)
 					}
@@ -283,7 +283,7 @@ func checkDir(dir string) error {
 	return nil
 }
 
-func permsEqual(a, b uint32) bool {
+func PermsEqual(a, b uint32) bool {
 	switch runtime.GOOS {
 	case "windows":
 		// There is only writeable and read only, represented for user, group