chore(model): the easier linter complaints
This commit is contained in:
+25
-21
@@ -195,7 +195,7 @@ var (
|
||||
ErrFolderMissing = errors.New("no such folder")
|
||||
errNoVersioner = errors.New("folder has no versioner")
|
||||
// errors about why a connection is closed
|
||||
errStopped = errors.New("Syncthing is being stopped")
|
||||
errStopped = errors.New("Syncthing is being stopped") //nolint:staticcheck
|
||||
errEncryptionInvConfigLocal = errors.New("can't encrypt outgoing data because local data is encrypted (folder-type receive-encrypted)")
|
||||
errEncryptionInvConfigRemote = errors.New("remote has encrypted data and encrypts that data for us - this is impossible")
|
||||
errEncryptionNotEncryptedLocal = errors.New("remote expects to exchange encrypted data, but is configured for plain data")
|
||||
@@ -622,24 +622,26 @@ func (m *model) UsageReportingStats(report *contract.Report, version int, previe
|
||||
|
||||
for _, line := range lines {
|
||||
// Allow prefixes to be specified in any order, but only once.
|
||||
loop:
|
||||
for {
|
||||
if strings.HasPrefix(line, "!") && !seenPrefix[0] {
|
||||
switch {
|
||||
case strings.HasPrefix(line, "!") && !seenPrefix[0]:
|
||||
seenPrefix[0] = true
|
||||
line = line[1:]
|
||||
report.IgnoreStats.Inverts++
|
||||
} else if strings.HasPrefix(line, "(?i)") && !seenPrefix[1] {
|
||||
case strings.HasPrefix(line, "(?i)") && !seenPrefix[1]:
|
||||
seenPrefix[1] = true
|
||||
line = line[4:]
|
||||
report.IgnoreStats.Folded++
|
||||
} else if strings.HasPrefix(line, "(?d)") && !seenPrefix[2] {
|
||||
case strings.HasPrefix(line, "(?d)") && !seenPrefix[2]:
|
||||
seenPrefix[2] = true
|
||||
line = line[4:]
|
||||
report.IgnoreStats.Deletable++
|
||||
} else {
|
||||
default:
|
||||
seenPrefix[0] = false
|
||||
seenPrefix[1] = false
|
||||
seenPrefix[2] = false
|
||||
break
|
||||
break loop
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1227,9 +1229,10 @@ func (m *model) ClusterConfig(conn protocol.Connection, cm *protocol.ClusterConf
|
||||
for _, folder := range cm.Folders {
|
||||
info := &clusterConfigDeviceInfo{}
|
||||
for _, dev := range folder.Devices {
|
||||
if dev.ID == m.id {
|
||||
switch dev.ID {
|
||||
case m.id:
|
||||
info.local = dev
|
||||
} else if dev.ID == deviceID {
|
||||
case deviceID:
|
||||
info.remote = dev
|
||||
}
|
||||
if info.local.ID != protocol.EmptyDeviceID && info.remote.ID != protocol.EmptyDeviceID {
|
||||
@@ -1451,7 +1454,7 @@ func (m *model) ccHandleFolders(folders []protocol.Folder, deviceCfg config.Devi
|
||||
sameError := false
|
||||
m.mut.Lock()
|
||||
if devs, ok := m.folderEncryptionFailures[folder.ID]; ok {
|
||||
sameError = devs[deviceID] == err
|
||||
sameError = devs[deviceID] == err //nolint:errorlint
|
||||
} else {
|
||||
m.folderEncryptionFailures[folder.ID] = make(map[protocol.DeviceID]error)
|
||||
}
|
||||
@@ -1461,7 +1464,8 @@ func (m *model) ccHandleFolders(folders []protocol.Folder, deviceCfg config.Devi
|
||||
if sameError {
|
||||
l.Debugln(msg)
|
||||
} else {
|
||||
if rerr, ok := err.(*redactedError); ok {
|
||||
var rerr *redactedError
|
||||
if errors.As(err, &rerr) {
|
||||
err = rerr.redacted
|
||||
}
|
||||
m.evLogger.Log(events.Failure, err.Error())
|
||||
@@ -2015,7 +2019,7 @@ func (m *model) Request(conn protocol.Connection, req *protocol.Request) (out pr
|
||||
|
||||
// The requestResponse releases the bytes to the buffer pool and the
|
||||
// limiters when its Close method is called.
|
||||
res := newLimitedRequestResponse(int(req.Size), limiter, m.globalRequestLimiter)
|
||||
res := newLimitedRequestResponse(req.Size, limiter, m.globalRequestLimiter)
|
||||
|
||||
defer func() {
|
||||
// Close it ourselves if it isn't returned due to an error
|
||||
@@ -2061,16 +2065,17 @@ func (m *model) Request(conn protocol.Connection, req *protocol.Request) (out pr
|
||||
}
|
||||
|
||||
n, err := readOffsetIntoBuf(folderFs, req.Name, req.Offset, res.data)
|
||||
if fs.IsNotExist(err) {
|
||||
switch {
|
||||
case fs.IsNotExist(err):
|
||||
l.Debugf("%v REQ(in) file doesn't exist: %s: %q / %q o=%d s=%d", m, deviceID.Short(), req.Folder, req.Name, req.Offset, req.Size)
|
||||
return nil, protocol.ErrNoSuchFile
|
||||
} else if err == io.EOF {
|
||||
case errors.Is(err, io.EOF):
|
||||
// Read beyond end of file. This might indicate a problem, or it
|
||||
// might be a short block that gets padded when read for encrypted
|
||||
// folders. We ignore the error and let the hash validation in the
|
||||
// next step take care of it, by only hashing the part we actually
|
||||
// managed to read.
|
||||
} else if err != nil {
|
||||
case err != nil:
|
||||
l.Debugf("%v REQ(in) failed reading file (%v): %s: %q / %q o=%d s=%d", m, err, deviceID.Short(), req.Folder, req.Name, req.Offset, req.Size)
|
||||
return nil, protocol.ErrGeneric
|
||||
}
|
||||
@@ -2230,13 +2235,13 @@ func (m *model) SetIgnores(folder string, content []string) error {
|
||||
|
||||
func (m *model) setIgnores(cfg config.FolderConfiguration, content []string) error {
|
||||
err := cfg.CheckPath()
|
||||
if err == config.ErrPathMissing {
|
||||
if errors.Is(err, config.ErrPathMissing) {
|
||||
if err = cfg.CreateRoot(); err != nil {
|
||||
return fmt.Errorf("failed to create folder root: %w", err)
|
||||
}
|
||||
err = cfg.CheckPath()
|
||||
}
|
||||
if err != nil && err != config.ErrMarkerMissing {
|
||||
if err != nil && !errors.Is(err, config.ErrMarkerMissing) {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -2498,7 +2503,6 @@ func (m *model) ScanFolders() map[string]error {
|
||||
wg := sync.NewWaitGroup()
|
||||
wg.Add(len(folders))
|
||||
for _, folder := range folders {
|
||||
folder := folder
|
||||
go func() {
|
||||
err := m.ScanFolder(folder)
|
||||
if err != nil {
|
||||
@@ -2677,7 +2681,7 @@ func (m *model) WatchError(folder string) error {
|
||||
runner, _ := m.folderRunners.Get(folder)
|
||||
m.mut.RUnlock()
|
||||
if err != nil {
|
||||
return nil // If the folder isn't running, there's no error to report.
|
||||
return nil //nolint:nilerr // If the folder isn't running, there's no error to report.
|
||||
}
|
||||
return runner.WatchError()
|
||||
}
|
||||
@@ -2744,7 +2748,7 @@ func (m *model) GlobalDirectoryTree(folder, prefix string, levels int, dirsOnly
|
||||
prefix = osutil.NativeFilename(prefix)
|
||||
|
||||
if prefix != "" && !strings.HasSuffix(prefix, sep) {
|
||||
prefix = prefix + sep
|
||||
prefix += sep
|
||||
}
|
||||
|
||||
for f, err := range itererr.Zip(m.sdb.AllGlobalFilesPrefix(folder, prefix)) {
|
||||
@@ -3456,8 +3460,8 @@ type updatedPendingFolder struct {
|
||||
// redactPathError checks if the error is actually a os.PathError, and if yes
|
||||
// returns a redactedError with the path removed.
|
||||
func redactPathError(err error) (error, bool) {
|
||||
perr, ok := err.(*os.PathError)
|
||||
if !ok {
|
||||
var perr *os.PathError
|
||||
if !errors.As(err, &perr) {
|
||||
return nil, false
|
||||
}
|
||||
return &redactedError{
|
||||
|
||||
Reference in New Issue
Block a user