chore: style fixes from go fix (#10846)

Just `go fix ./...`

Signed-off-by: Jakob Borg <jakob@kastelo.net>
This commit is contained in:
Jakob Borg
2026-08-05 20:23:22 +02:00
committed by GitHub
parent 946e2b83a1
commit 8ea09c0094
144 changed files with 211 additions and 315 deletions
+15 -15
View File
@@ -202,7 +202,7 @@ func (s *service) getListener(guiCfg config.GUIConfiguration) (net.Listener, err
return listener, nil
}
func sendJSON(w http.ResponseWriter, jsonObject interface{}) {
func sendJSON(w http.ResponseWriter, jsonObject any) {
w.Header().Set("Content-Type", "application/json")
// Marshalling might fail, in which case we should return a 500 with the
// actual error.
@@ -696,7 +696,7 @@ func (*service) getSystemPaths(w http.ResponseWriter, _ *http.Request) {
}
func (s *service) getJSMetadata(w http.ResponseWriter, _ *http.Request) {
meta, _ := json.Marshal(map[string]interface{}{
meta, _ := json.Marshal(map[string]any{
"deviceID": s.id.String(),
"deviceIDShort": s.id.Short().String(),
"authenticated": true,
@@ -706,7 +706,7 @@ func (s *service) getJSMetadata(w http.ResponseWriter, _ *http.Request) {
}
func (*service) getSystemVersion(w http.ResponseWriter, _ *http.Request) {
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"version": build.Version,
"codename": build.Codename,
"longVersion": build.LongVersion,
@@ -838,7 +838,7 @@ func (s *service) getDBNeed(w http.ResponseWriter, r *http.Request) {
}
// Convert the struct to a more loose structure, and inject the size.
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"progress": toJsonFileInfoSlice(progress),
"queued": toJsonFileInfoSlice(queued),
"rest": toJsonFileInfoSlice(rest),
@@ -866,7 +866,7 @@ func (s *service) getDBRemoteNeed(w http.ResponseWriter, r *http.Request) {
return
}
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"files": toJsonFileInfoSlice(files),
"page": page,
"perpage": perpage,
@@ -886,7 +886,7 @@ func (s *service) getDBLocalChanged(w http.ResponseWriter, r *http.Request) {
return
}
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"files": toJsonFileInfoSlice(files),
"page": page,
"perpage": perpage,
@@ -951,7 +951,7 @@ func (s *service) getDBFile(w http.ResponseWriter, r *http.Request) {
return
}
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"global": jsonFileInfo(gf),
"local": jsonFileInfo(lf),
"availability": av,
@@ -967,7 +967,7 @@ func (s *service) getDebugFile(w http.ResponseWriter, r *http.Request) {
gf, _, _ := s.model.CurrentGlobalFile(folder, file)
av, _ := s.model.Availability(folder, protocol.FileInfo{Name: file}, protocol.BlockInfo{})
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"global": jsonFileInfo(gf),
"local": jsonFileInfo(lf),
"availability": av,
@@ -1037,7 +1037,7 @@ func (s *service) getSystemStatus(w http.ResponseWriter, _ *http.Request) {
runtime.ReadMemStats(&m)
tilde, _ := fs.ExpandTilde("~")
res := make(map[string]interface{})
res := make(map[string]any)
res["myID"] = s.id.String()
res["goroutines"] = runtime.NumGoroutine()
res["alloc"] = m.Alloc
@@ -1302,7 +1302,7 @@ func (s *service) getDBIgnores(w http.ResponseWriter, r *http.Request) {
folder := qs.Get("folder")
lines, patterns, err := s.model.LoadIgnores(folder)
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"ignore": lines,
"expanded": patterns,
"error": errorString(err),
@@ -1411,7 +1411,7 @@ func (s *service) getSystemUpgrade(w http.ResponseWriter, _ *http.Request) {
httpError(w, err)
return
}
res := make(map[string]interface{})
res := make(map[string]any)
res["running"] = build.Version
res["latest"] = rel.Tag
res["newer"] = upgrade.CompareVersions(rel.Tag, build.Version) == upgrade.Newer
@@ -1439,7 +1439,7 @@ func (*service) getDeviceID(w http.ResponseWriter, r *http.Request) {
func (*service) getLang(w http.ResponseWriter, r *http.Request) {
lang := r.Header.Get("Accept-Language")
weights := make(map[string]float64)
for _, l := range strings.Split(lang, ",") {
for l := range strings.SplitSeq(lang, ",") {
parts := strings.SplitN(l, ";", 2)
code := strings.ToLower(strings.TrimSpace(parts[0]))
weights[code] = 1.0
@@ -1638,7 +1638,7 @@ func (s *service) getFolderErrors(w http.ResponseWriter, r *http.Request) {
}
}
sendJSON(w, map[string]interface{}{
sendJSON(w, map[string]any{
"folder": folder,
"errors": errors,
"page": page,
@@ -1770,8 +1770,8 @@ func (f jsonFileInfo) MarshalJSON() ([]byte, error) {
return json.Marshal(m)
}
func fileIntfJSONMap(f protocol.FileInfo) map[string]interface{} {
out := map[string]interface{}{
func fileIntfJSONMap(f protocol.FileInfo) map[string]any {
out := map[string]any{
"name": f.FileName(),
"type": f.FileType().String(),
"size": f.Size,
+1 -4
View File
@@ -311,10 +311,7 @@ func authLDAP(username string, password string, cfg config.LDAPConfiguration) bo
func formatOptionalPercentS(template string, username string) string {
var replacements []any
nReps := strings.Count(template, "%s") - strings.Count(template, "%%s")
if nReps < 0 {
nReps = 0
}
nReps := max(strings.Count(template, "%s")-strings.Count(template, "%%s"), 0)
for range nReps {
replacements = append(replacements, username)
}
+1 -2
View File
@@ -433,7 +433,6 @@ func TestAPIServiceRequests(t *testing.T) {
}
for _, tc := range cases {
tc := tc
t.Run(tc.URL, func(t *testing.T) {
t.Parallel()
testHTTPRequest(t, baseURL, tc, testAPIKey)
@@ -1723,7 +1722,7 @@ func TestConfigChanges(t *testing.T) {
return resp
}
mod := func(method, path string, data interface{}) {
mod := func(method, path string, data any) {
t.Helper()
bs, err := json.Marshal(data)
if err != nil {
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build noassets
// +build noassets
package auto
+1 -1
View File
@@ -441,7 +441,7 @@ func (c *configMuxBuilder) adjustLDAP(w http.ResponseWriter, r *http.Request, ld
}
// Unmarshals the content of the given body and stores it in to (i.e. to must be a pointer).
func unmarshalTo(body io.ReadCloser, to interface{}) error {
func unmarshalTo(body io.ReadCloser, to any) error {
bs, err := io.ReadAll(body)
body.Close()
if err != nil {
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build race
// +build race
package build
+2 -2
View File
@@ -664,7 +664,7 @@ func (defaults *Defaults) prepare(myID protocol.DeviceID, existingDevices map[pr
defaults.Device.prepare(nil)
}
func ensureZeroForNodefault(empty interface{}, target interface{}) {
func ensureZeroForNodefault(empty any, target any) {
copyMatchingTag(empty, target, "nodefault", func(v string) bool {
if len(v) > 0 && v != "true" {
panic(fmt.Sprintf(`unexpected tag value: %s. expected untagged or "true"`, v))
@@ -674,7 +674,7 @@ func ensureZeroForNodefault(empty interface{}, target interface{}) {
}
// copyMatchingTag copies fields tagged tag:"value" from "from" struct onto "to" struct.
func copyMatchingTag(from interface{}, to interface{}, tag string, shouldCopy func(value string) bool) {
func copyMatchingTag(from any, to any, tag string, shouldCopy func(value string) bool) {
fromStruct := reflect.ValueOf(from).Elem()
fromType := fromStruct.Type()
+6 -6
View File
@@ -1158,8 +1158,8 @@ func TestInvalidDeviceIDRejected(t *testing.T) {
// Change the device ID of the first device to "invalid". Fast and loose
// with the type assertions as we know what the JSON decoder returns.
devs := cfg["devices"].([]interface{})
dev0 := devs[0].(map[string]interface{})
devs := cfg["devices"].([]any)
dev0 := devs[0].(map[string]any)
dev0["deviceID"] = tc.id
devs[0] = dev0
@@ -1197,8 +1197,8 @@ func TestInvalidFolderIDRejected(t *testing.T) {
// Change the folder ID of the first folder to the empty string.
// Fast and loose with the type assertions as we know what the JSON
// decoder returns.
devs := cfg["folders"].([]interface{})
dev0 := devs[0].(map[string]interface{})
devs := cfg["folders"].([]any)
dev0 := devs[0].(map[string]any)
dev0["id"] = tc.id
devs[0] = dev0
@@ -1324,7 +1324,7 @@ func adjustFolderConfiguration(cfg *FolderConfiguration, id, label string, fsTyp
// defaultConfigAsMap returns a valid default config as a JSON-decoded
// map[string]interface{}. This is useful to override random elements and
// re-encode into JSON.
func defaultConfigAsMap() map[string]interface{} {
func defaultConfigAsMap() map[string]any {
cfg := New(device1)
dev := cfg.Defaults.Device.Copy()
adjustDeviceConfiguration(&dev, device2, "name")
@@ -1337,7 +1337,7 @@ func defaultConfigAsMap() map[string]interface{} {
// can't happen
panic(err)
}
var tmp map[string]interface{}
var tmp map[string]any
if err := json.Unmarshal(bs, &tmp); err != nil {
// can't happen
panic(err)
+2 -3
View File
@@ -9,6 +9,7 @@ package config
import (
"encoding/json"
"encoding/xml"
"maps"
"slices"
"strings"
@@ -45,9 +46,7 @@ type internalParam struct {
func (c VersioningConfiguration) Copy() VersioningConfiguration {
cp := c
cp.Params = make(map[string]string, len(c.Params))
for k, v := range c.Params {
cp.Params[k] = v
}
maps.Copy(cp.Params, c.Params)
return cp
}
+2 -2
View File
@@ -401,7 +401,7 @@ func TestConnectionEstablishment(t *testing.T) {
}
}
func withConnectionPair(b interface{ Fatal(...interface{}) }, connUri string, h func(client, server internalConn)) {
func withConnectionPair(b interface{ Fatal(...any) }, connUri string, h func(client, server internalConn)) {
// Root of the service tree.
supervisor := suture.New("main", suture.Spec{
PassThroughPanics: true,
@@ -494,7 +494,7 @@ func withConnectionPair(b interface{ Fatal(...interface{}) }, connUri string, h
_ = serverConn.Close()
}
func mustGetCert(b interface{ Fatal(...interface{}) }) tls.Certificate {
func mustGetCert(b interface{ Fatal(...any) }) tls.Certificate {
cert, err := tlsutil.NewCertificateInMemory("bench", 10)
if err != nil {
b.Fatal(err)
+2 -2
View File
@@ -54,7 +54,7 @@ func TestDialQueueSort(t *testing.T) {
var seen1, seen2 int
for i := 0; i < 100; i++ {
for range 100 {
queue.Sort()
res := shortDevices(queue)
if reflect.DeepEqual(res, expected1) {
@@ -90,7 +90,7 @@ func TestDialQueueSort(t *testing.T) {
var seen1, seen2 int
for i := 0; i < 100; i++ {
for range 100 {
queue.Sort()
res := shortDevices(queue)
if reflect.DeepEqual(res, expected1) {
+5 -9
View File
@@ -256,18 +256,14 @@ func (w *limitedWriter) Write(buf []byte) (int, error) {
// try to be a bit adaptable. We range from the minimum write size of 1
// KiB up to the limiter burst size, aiming for about a write every
// 10ms.
singleWriteSize := int(w.waiter.Limit() / 100) // 10ms worth of data
singleWriteSize = ((singleWriteSize / 1024) + 1) * 1024 // round up to the next kibibyte
if singleWriteSize > limiterBurstSize {
singleWriteSize = limiterBurstSize
}
singleWriteSize := int(w.waiter.Limit() / 100) // 10ms worth of data
singleWriteSize = min(
// round up to the next kibibyte
((singleWriteSize/1024)+1)*1024, limiterBurstSize)
written := 0
for written < len(buf) {
toWrite := singleWriteSize
if toWrite > len(buf)-written {
toWrite = len(buf) - written
}
toWrite := min(singleWriteSize, len(buf)-written)
w.take(toWrite)
n, err := w.writer.Write(buf[written : written+toWrite])
written += n
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build go1.15 && !noquic
// +build go1.15,!noquic
package connections
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !noquic
// +build !noquic
package connections
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !noquic
// +build !noquic
package connections
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build noquic
// +build noquic
package connections
+6 -6
View File
@@ -18,23 +18,23 @@ import (
type Registry struct {
mut sync.Mutex
available map[string][]interface{}
available map[string][]any
}
func New() *Registry {
return &Registry{
available: make(map[string][]interface{}),
available: make(map[string][]any),
}
}
func (r *Registry) Register(scheme string, item interface{}) {
func (r *Registry) Register(scheme string, item any) {
r.mut.Lock()
defer r.mut.Unlock()
r.available[scheme] = append(r.available[scheme], item)
}
func (r *Registry) Unregister(scheme string, item interface{}) {
func (r *Registry) Unregister(scheme string, item any) {
r.mut.Lock()
defer r.mut.Unlock()
@@ -49,12 +49,12 @@ func (r *Registry) Unregister(scheme string, item interface{}) {
// Get returns an item for a schema compatible with the given scheme.
// If any item satisfies preferred, that has precedence over other items.
func (r *Registry) Get(scheme string, preferred func(interface{}) bool) interface{} {
func (r *Registry) Get(scheme string, preferred func(any) bool) any {
r.mut.Lock()
defer r.mut.Unlock()
var (
best interface{}
best any
bestPref bool
bestScheme string
)
+4 -4
View File
@@ -14,8 +14,8 @@ import (
func TestRegistry(t *testing.T) {
r := New()
want := func(i int) func(interface{}) bool {
return func(x interface{}) bool { return x.(int) == i }
want := func(i int) func(any) bool {
return func(x any) bool { return x.(int) == i }
}
if res := r.Get("int", want(1)); res != nil {
@@ -73,7 +73,7 @@ func TestShortSchemeFirst(t *testing.T) {
r.Register("foobar", 1)
// If we don't care about the value, we should get the one with "foo".
res := r.Get("foo", func(interface{}) bool { return false })
res := r.Get("foo", func(any) bool { return false })
if res != 0 {
t.Error("unexpected", res)
}
@@ -89,7 +89,7 @@ func BenchmarkGet(b *testing.B) {
b.ResetTimer()
for i := 0; i < b.N; i++ {
r.Get("tcp", func(x interface{}) bool {
r.Get("tcp", func(x any) bool {
return x.(*net.TCPAddr).IP.IsUnspecified()
})
}
+3 -4
View File
@@ -19,6 +19,7 @@ import (
"fmt"
"io"
"log/slog"
"maps"
"math"
"net"
"net/url"
@@ -817,7 +818,7 @@ func (s *service) createListener(factory listenerFactory, uri *url.URL) bool {
}
func (s *service) logListenAddressesChangedEvent(l ListenerAddresses) {
s.evLogger.Log(events.ListenAddressesChanged, map[string]interface{}{
s.evLogger.Log(events.ListenAddressesChanged, map[string]any{
"address": l.URI,
"lan": l.LANAddresses,
"wan": l.WANAddresses,
@@ -995,9 +996,7 @@ func newConnectionStatusHandler() connectionStatusHandler {
func (s *connectionStatusHandler) ConnectionStatus() map[string]ConnectionStatusEntry {
result := make(map[string]ConnectionStatusEntry)
s.connectionStatusMut.RLock()
for k, v := range s.connectionStatus {
result[k] = v
}
maps.Copy(result, s.connectionStatus)
s.connectionStatusMut.RUnlock()
return result
}
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !solaris && !windows
// +build !solaris,!windows
package dialer
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build solaris
// +build solaris
package dialer
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package dialer
+1 -1
View File
@@ -111,7 +111,7 @@ func DialContextReusePortFunc(registry *registry.Registry) func(ctx context.Cont
return DialContext(ctx, network, addr)
}
localAddrInterface := registry.Get(network, func(addr interface{}) bool {
localAddrInterface := registry.Get(network, func(addr any) bool {
return addr.(*net.TCPAddr).IP.IsUnspecified()
})
if localAddrInterface == nil {
+2 -3
View File
@@ -7,6 +7,7 @@
package discover
import (
"maps"
"sync"
"time"
@@ -60,9 +61,7 @@ func (c *cache) Get(id protocol.DeviceID) (CacheEntry, bool) {
func (c *cache) Cache() map[protocol.DeviceID]CacheEntry {
c.mut.Lock()
m := make(map[protocol.DeviceID]CacheEntry, len(c.entries))
for k, v := range c.entries {
m[k] = v
}
maps.Copy(m, c.entries)
c.mut.Unlock()
return m
}
+1 -1
View File
@@ -294,7 +294,7 @@ func (c *localClient) registerDevice(src net.Addr, device *discoproto.Announce)
})
if isNewDevice {
c.evLogger.Log(events.DeviceDiscovered, map[string]interface{}{
c.evLogger.Log(events.DeviceDiscovered, map[string]any{
"device": id.String(),
"addrs": validAddresses,
})
+7 -7
View File
@@ -235,7 +235,7 @@ const BufferSize = 64
type Logger interface {
suture.Service
Log(t EventType, data interface{})
Log(t EventType, data any)
Subscribe(mask EventType) Subscription
}
@@ -253,10 +253,10 @@ type Event struct {
// Per-subscription sequential event ID. Named "id" for backwards compatibility with the REST API
SubscriptionID int `json:"id"`
// Global ID of the event across all subscriptions
GlobalID int `json:"globalID"`
Time time.Time `json:"time"`
Type EventType `json:"type"`
Data interface{} `json:"data"`
GlobalID int `json:"globalID"`
Time time.Time `json:"time"`
Type EventType `json:"type"`
Data any `json:"data"`
}
type Subscription interface {
@@ -325,7 +325,7 @@ loop:
return nil
}
func (l *logger) Log(t EventType, data interface{}) {
func (l *logger) Log(t EventType, data any) {
l.events <- Event{
Time: time.Now(), // intentionally high precision
Type: t,
@@ -559,7 +559,7 @@ var NoopLogger Logger = &noopLogger{}
func (*noopLogger) Serve(_ context.Context) error { return nil }
func (*noopLogger) Log(_ EventType, _ interface{}) {}
func (*noopLogger) Log(_ EventType, _ any) {}
func (*noopLogger) Subscribe(_ EventType) Subscription {
return &noopSubscription{}
+4 -4
View File
@@ -127,7 +127,7 @@ func TestBufferOverflow(t *testing.T) {
t0 := time.Now()
const nEvents = BufferSize * 2
for i := 0; i < nEvents; i++ {
for range nEvents {
l.Log(DeviceConnected, "foo")
}
if d := time.Since(t0); d > 15*time.Second {
@@ -237,7 +237,7 @@ func TestBufferedSub(t *testing.T) {
bs := NewBufferedSubscription(s, 10*BufferSize)
go func() {
for i := 0; i < 10*BufferSize; i++ {
for i := range 10 * BufferSize {
l.Log(DeviceConnected, fmt.Sprintf("event-%d", i))
if i%30 == 0 {
// Give the buffer routine time to pick up the events
@@ -378,7 +378,7 @@ func TestUnsubscribeContention(t *testing.T) {
stopListeners := make(chan struct{})
var listenerWg sync.WaitGroup
for i := 0; i < listeners; i++ {
for range listeners {
listenerWg.Go(func() {
s := l.Subscribe(AllEvents)
defer s.Unsubscribe()
@@ -400,7 +400,7 @@ func TestUnsubscribeContention(t *testing.T) {
stopSenders := make(chan struct{})
defer close(stopSenders)
var senderWg sync.WaitGroup
for i := 0; i < senders; i++ {
for range senders {
senderWg.Go(func() {
t := time.NewTicker(time.Millisecond)
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build linux
// +build linux
package fs
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build linux
// +build linux
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build linux || solaris
// +build linux solaris
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build linux || android
// +build linux android
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !linux && !android && !windows
// +build !linux,!android,!windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
package fs
+1 -1
View File
@@ -580,7 +580,7 @@ func TestXattr(t *testing.T) {
// Create a set of random attributes that we will set and read back
var attrs []protocol.Xattr
for i := 0; i < 10; i++ {
for i := range 10 {
key := fmt.Sprintf("user.test-%d", i)
value := make([]byte, xattrSize())
rand.Read(value)
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build linux
// +build linux
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !linux
// +build !linux
package fs
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build darwin && !kqueue && cgo && !ios
// +build darwin,!kqueue,cgo,!ios
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build solaris && cgo
// +build solaris,cgo
package fs
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build linux
// +build linux
package fs
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build dragonfly || freebsd || netbsd || openbsd || ios || kqueue
// +build dragonfly freebsd netbsd openbsd ios kqueue
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !linux && !windows && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !darwin && !cgo && !ios
// +build !linux,!windows,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!darwin,!cgo,!ios
// Catch all platforms that are not specifically handled to use the generic
// event types.
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build !dragonfly && !freebsd && !netbsd && !openbsd && !kqueue && !ios
// +build !dragonfly,!freebsd,!netbsd,!openbsd,!kqueue,!ios
package fs
+2 -4
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build (!solaris && !darwin) || (solaris && cgo) || (darwin && cgo)
// +build !solaris,!darwin solaris,cgo darwin,cgo
package fs
@@ -364,8 +363,7 @@ func TestWatchSymlinkedRoot(t *testing.T) {
linkedFs := NewFilesystem(FilesystemTypeBasic, filepath.Join(testFs.URI(), link))
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ctx := t.Context()
if _, _, err := linkedFs.Watch(".", fakeMatcher{}, ctx, false); err != nil {
panic(err)
}
@@ -635,6 +633,6 @@ func (fakeEventInfo) Event() notify.Event {
return notify.Write
}
func (fakeEventInfo) Sys() interface{} {
func (fakeEventInfo) Sys() any {
return nil
}
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build (solaris && !cgo) || (darwin && !cgo) || (darwin && kqueue)
// +build solaris,!cgo darwin,!cgo darwin,kqueue
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build freebsd || netbsd
// +build freebsd netbsd
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build linux || darwin
// +build linux darwin
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows && !dragonfly && !illumos && !solaris && !openbsd
// +build !windows,!dragonfly,!illumos,!solaris,!openbsd
package fs
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows || dragonfly || illumos || solaris || openbsd
// +build windows dragonfly illumos solaris openbsd
package fs
+1 -1
View File
@@ -1017,6 +1017,6 @@ func (f *fakeFileInfo) Group() int {
return f.gid
}
func (*fakeFileInfo) Sys() interface{} {
func (*fakeFileInfo) Sys() any {
return nil
}
+1 -1
View File
@@ -95,7 +95,7 @@ type FileInfo interface {
Size() int64
ModTime() time.Time
IsDir() bool
Sys() interface{}
Sys() any
// Extensions
IsRegular() bool
IsSymlink() bool
+1 -4
View File
@@ -192,10 +192,7 @@ func CommonPrefix(first, second string) string {
isAbs := filepath.IsAbs(first) && filepath.IsAbs(second)
count := len(firstParts)
if len(secondParts) < len(firstParts) {
count = len(secondParts)
}
count := min(len(secondParts), len(firstParts))
common := make([]string, 0, count)
for i := range count {
+1 -1
View File
@@ -106,7 +106,7 @@ func TestSanitizePath(t *testing.T) {
func TestSanitizePathFuzz(t *testing.T) {
buf := make([]byte, 128)
for i := 0; i < 100; i++ {
for range 100 {
rand.Read(buf)
path := SanitizePath(string(buf))
if !utf8.ValidString(path) {
+2 -3
View File
@@ -11,6 +11,7 @@ import (
"compress/gzip"
"context"
"fmt"
"maps"
"net/http"
"strconv"
"strings"
@@ -43,9 +44,7 @@ type recordedResponse struct {
}
func (resp *recordedResponse) ServeHTTP(w http.ResponseWriter, r *http.Request) {
for k, v := range resp.header {
w.Header()[k] = v
}
maps.Copy(w.Header(), resp.header)
w.Header().Set("Cache-Control", fmt.Sprintf("public, max-age=%d", int(resp.keep.Seconds())))
+1 -1
View File
@@ -925,7 +925,7 @@ func TestIssue4901(t *testing.T) {
}
// Cache does not suddenly make the load succeed.
for i := 0; i < 2; i++ {
for range 2 {
err := pats.Load(".stignore")
if err == nil {
t.Fatal("expected an error")
+2 -5
View File
@@ -47,7 +47,7 @@ func (randomOrderBlockPullReorderer) Reorder(blocks []protocol.BlockInfo) []prot
type standardBlockPullReorderer struct {
myIndex int
count int
shuffle func(interface{}) // Used for test
shuffle func(any) // Used for test
}
func newStandardBlockPullReorderer(id protocol.DeviceID, otherDevices []protocol.DeviceID) *standardBlockPullReorderer {
@@ -116,10 +116,7 @@ func chunk(blocks []protocol.BlockInfo, partCount int) [][]protocol.BlockInfo {
chunkSize := (count + partCount - 1) / partCount
parts := make([][]protocol.BlockInfo, 0, partCount)
for i := 0; i < count; i += chunkSize {
end := i + chunkSize
if end > count {
end = count
}
end := min(i+chunkSize, count)
parts = append(parts, blocks[i:end])
}
return parts
+1 -1
View File
@@ -92,7 +92,7 @@ func Test_standardBlockPullReorderer_Reorder(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
p := newStandardBlockPullReorderer(tt.myId, tt.devices)
p.shuffle = func(i interface{}) {} // Noop shuffle
p.shuffle = func(i any) {} // Noop shuffle
if got := p.Reorder(tt.blocks); !reflect.DeepEqual(got, tt.want) {
t.Errorf("reorderBlocksForDevices() = %v, want %v (my idx: %d, count %d)", got, tt.want, p.myIndex, p.count)
}
+2 -2
View File
@@ -1164,7 +1164,7 @@ func (f *folder) setWatchError(err error, nextTryIn time.Duration) {
f.watchErr = err
f.watchMut.Unlock()
if err != prevErr { //nolint:errorlint
data := map[string]interface{}{
data := map[string]any{
"folder": f.ID,
}
if prevErr != nil {
@@ -1338,7 +1338,7 @@ func (f *folder) updateLocals(fs []protocol.FileInfo) error {
if err != nil {
return err
}
f.evLogger.Log(events.LocalIndexUpdated, map[string]interface{}{
f.evLogger.Log(events.LocalIndexUpdated, map[string]any{
"folder": f.ID,
"items": len(fs),
"filenames": filenames,
+9 -9
View File
@@ -229,7 +229,7 @@ func (f *sendReceiveFolder) pull(ctx context.Context) (bool, error) {
f.errorsMut.Unlock()
if pullErrNum > 0 {
f.evLogger.Log(events.FolderErrors, map[string]interface{}{
f.evLogger.Log(events.FolderErrors, map[string]any{
"folder": f.folderID,
"errors": f.Errors(),
})
@@ -564,7 +564,7 @@ func (f *sendReceiveFolder) handleDir(file protocol.FileInfo, dbUpdateChan chan<
defer func() {
slog.Info("Created or updated directory", f.LogAttr(), file.LogAttr())
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": file.Name,
"error": events.Error(err),
@@ -737,7 +737,7 @@ func (f *sendReceiveFolder) handleSymlink(file protocol.FileInfo, dbUpdateChan c
} else {
slog.Info("Created or updated symlink", f.LogAttr(), file.LogAttr())
}
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": file.Name,
"error": events.Error(err),
@@ -832,7 +832,7 @@ func (f *sendReceiveFolder) deleteDir(file protocol.FileInfo, dbUpdateChan chan<
} else {
slog.Info("Deleted directory", f.LogAttr(), file.LogAttr())
}
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": file.Name,
"error": events.Error(err),
@@ -896,7 +896,7 @@ func (f *sendReceiveFolder) deleteFileWithCurrent(file, cur protocol.FileInfo, h
} else {
slog.Info("Deleted "+kind, f.LogAttr(), file.LogAttr())
}
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": file.Name,
"error": events.Error(err),
@@ -981,14 +981,14 @@ func (f *sendReceiveFolder) renameFile(cur, source, target protocol.FileInfo, db
} else {
slog.Info("Renamed file", f.LogAttr(), target.LogAttr(), slog.String("from", source.Name))
}
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": source.Name,
"error": events.Error(err),
"type": "file",
"action": "delete",
})
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": target.Name,
"error": events.Error(err),
@@ -1275,7 +1275,7 @@ func (f *sendReceiveFolder) shortcutFile(file protocol.FileInfo, dbUpdateChan ch
} else {
slog.Info("Updated file metadata", f.LogAttr(), file.LogAttr())
}
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": file.Name,
"error": events.Error(err),
@@ -1748,7 +1748,7 @@ func (f *sendReceiveFolder) finisherRoutine(ctx context.Context, in <-chan *shar
f.model.progressEmitter.Deregister(state)
}
f.evLogger.Log(events.ItemFinished, map[string]interface{}{
f.evLogger.Log(events.ItemFinished, map[string]any{
"folder": f.folderID,
"item": state.file.Name,
"error": events.Error(err),
+4 -4
View File
@@ -251,7 +251,7 @@ func TestCopierFinder(t *testing.T) {
timeout := time.After(10 * time.Second)
pulls := make([]pullBlockState, 4)
for i := 0; i < 4; i++ {
for i := range 4 {
select {
case pulls[i] = <-pullChan:
case <-timeout:
@@ -408,7 +408,7 @@ func TestDeregisterOnFailInCopy(t *testing.T) {
t0 := time.Now()
if ev, err := s.Poll(time.Minute); err != nil {
t.Fatal("Got error waiting for ItemFinished event:", err)
} else if n := ev.Data.(map[string]interface{})["item"]; n != state.file.Name {
} else if n := ev.Data.(map[string]any)["item"]; n != state.file.Name {
t.Fatal("Got ItemFinished event for wrong file:", n)
}
t.Log("event took", time.Since(t0))
@@ -513,7 +513,7 @@ func TestDeregisterOnFailInPull(t *testing.T) {
t0 := time.Now()
if ev, err := s.Poll(time.Minute); err != nil {
t.Fatal("Got error waiting for ItemFinished event:", err)
} else if n := ev.Data.(map[string]interface{})["item"]; n != state.file.Name {
} else if n := ev.Data.(map[string]any)["item"]; n != state.file.Name {
t.Fatal("Got ItemFinished event for wrong file:", n)
}
t.Log("event took", time.Since(t0))
@@ -899,7 +899,7 @@ func TestPullCtxCancel(t *testing.T) {
done := make(chan struct{})
defer close(done)
for i := 0; i < 2; i++ {
for i := range 2 {
go func() {
select {
case pullChan <- emptyState():
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
package model
+2 -2
View File
@@ -265,7 +265,7 @@ func (c *folderSummaryService) processUpdate(ev events.Event) {
return
case events.StateChanged:
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
if data["to"].(string) != "idle" {
return
}
@@ -296,7 +296,7 @@ func (c *folderSummaryService) processUpdate(ev events.Event) {
// This folder needs to be refreshed whenever we do the next
// refresh.
folder = ev.Data.(map[string]interface{})["folder"].(string)
folder = ev.Data.(map[string]any)["folder"].(string)
}
c.foldersMut.Lock()
+2 -2
View File
@@ -119,7 +119,7 @@ func (s *stateTracker) setState(newState folderState) {
metricFolderState.WithLabelValues(s.folderID).Set(float64(s.current))
}()
eventData := map[string]interface{}{
eventData := map[string]any{
"folder": s.folderID,
"to": newState.String(),
"from": s.current.String(),
@@ -156,7 +156,7 @@ func (s *stateTracker) setError(err error) {
metricFolderState.WithLabelValues(s.folderID).Set(float64(s.current))
}()
eventData := map[string]interface{}{
eventData := map[string]any{
"folder": s.folderID,
"from": s.current.String(),
}
+1 -1
View File
@@ -453,7 +453,7 @@ func (s *indexHandler) receive(fs []protocol.FileInfo, update bool, op string, p
})
}
s.evLogger.Log(events.RemoteIndexUpdated, map[string]interface{}{
s.evLogger.Log(events.RemoteIndexUpdated, map[string]any{
"device": deviceID.String(),
"folder": s.folder,
"items": len(fs),
+4 -6
View File
@@ -7,7 +7,6 @@
package model_test
import (
"context"
"fmt"
"io"
"sync"
@@ -23,8 +22,7 @@ import (
func TestIndexhandlerConcurrency(t *testing.T) {
// Verify that sending a lot of index update messages using the
// FileInfoBatch works and doesn't trigger the race detector.
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
ctx := t.Context()
ar, aw := io.Pipe()
br, bw := io.Pipe()
@@ -52,7 +50,7 @@ func TestIndexhandlerConcurrency(t *testing.T) {
recvdBatches := 0
var wg sync.WaitGroup
m2.IndexUpdateCalls(func(_ protocol.Connection, idxUp *protocol.IndexUpdate) error {
for j := 0; j < files; j++ {
for j := range int(files) {
if n := idxUp.Files[j].Name; n != fmt.Sprintf("f%d-%d", recvdBatches, j) {
t.Error("wrong filename", n)
}
@@ -67,8 +65,8 @@ func TestIndexhandlerConcurrency(t *testing.T) {
return c1.IndexUpdate(ctx, &protocol.IndexUpdate{Folder: "foo", Files: fs})
})
sentEntries := 0
for i := 0; i < msgs; i++ {
for j := 0; j < files; j++ {
for i := range int(msgs) {
for j := range int(files) {
b1.Append(protocol.FileInfo{
Name: fmt.Sprintf("f%d-%d", i, j),
Blocks: []protocol.BlockInfo{{Hash: make([]byte, 32)}},
+15 -15
View File
@@ -116,7 +116,7 @@ type Model interface {
Availability(folder string, file protocol.FileInfo, block protocol.BlockInfo) ([]Availability, error)
Completion(device protocol.DeviceID, folder string) (FolderCompletion, error)
ConnectionStats() map[string]interface{}
ConnectionStats() map[string]any
DeviceStatistics() (map[protocol.DeviceID]stats.DeviceStatistics, error)
FolderStatistics() (map[string]stats.FolderStatistics, error)
UsageReportingStats(report *contract.Report, version int, preview bool)
@@ -684,7 +684,7 @@ type ConnectionStats struct {
IsLocal bool `json:"isLocal"` // mirror values from Primary, for compatibility with <1.24.0
Crypto string `json:"crypto"` // mirror values from Primary, for compatibility with <1.24.0
Primary ConnectionInfo `json:"primary,omitempty"`
Primary ConnectionInfo `json:"primary"`
Secondary []ConnectionInfo `json:"secondary,omitempty"`
}
@@ -698,11 +698,11 @@ type ConnectionInfo struct {
}
// ConnectionStats returns a map with connection statistics for each device.
func (m *model) ConnectionStats() map[string]interface{} {
func (m *model) ConnectionStats() map[string]any {
m.mut.RLock()
defer m.mut.RUnlock()
res := make(map[string]interface{})
res := make(map[string]any)
devs := m.cfg.Devices()
conns := make(map[string]ConnectionStats, len(devs))
for device, deviceCfg := range devs {
@@ -762,7 +762,7 @@ func (m *model) ConnectionStats() map[string]interface{} {
res["connections"] = conns
in, out := protocol.TotalInOut()
res["total"] = map[string]interface{}{
res["total"] = map[string]any{
"at": time.Now().Truncate(time.Second),
"inBytesTotal": in,
"outBytesTotal": out,
@@ -862,8 +862,8 @@ func (comp *FolderCompletion) setCompletionPct() {
}
// Map returns the members as a map, e.g. used in api to serialize as JSON.
func (comp *FolderCompletion) Map() map[string]interface{} {
return map[string]interface{}{
func (comp *FolderCompletion) Map() map[string]any {
return map[string]any{
"completion": comp.CompletionPct,
"globalBytes": comp.GlobalBytes,
"needBytes": comp.NeedBytes,
@@ -1516,7 +1516,7 @@ func (m *model) ccHandleFolders(folders []protocol.Folder, deviceCfg config.Devi
})
}
if len(updatedPending) > 0 || len(expiredPendingList) > 0 {
m.evLogger.Log(events.PendingFoldersChanged, map[string]interface{}{
m.evLogger.Log(events.PendingFoldersChanged, map[string]any{
"added": updatedPending,
"removed": expiredPendingList,
})
@@ -2266,7 +2266,7 @@ func (m *model) OnHello(remoteID protocol.DeviceID, addr net.Addr, hello protoco
if err := m.observed.AddOrUpdatePendingDevice(remoteID, hello.DeviceName, addr.String()); err != nil {
slog.Warn("Failed to persist pending device entry to database", slogutil.Error(err))
}
m.evLogger.Log(events.PendingDevicesChanged, map[string][]interface{}{
m.evLogger.Log(events.PendingDevicesChanged, map[string][]any{
"added": {map[string]string{
"deviceID": remoteID.String(),
"name": hello.DeviceName,
@@ -2426,7 +2426,7 @@ func (m *model) DownloadProgress(conn protocol.Connection, p *protocol.DownloadP
downloads.Update(p.Folder, p.Updates)
state := downloads.GetBlockCounts(p.Folder)
m.evLogger.Log(events.RemoteDownloadProgress, map[string]interface{}{
m.evLogger.Log(events.RemoteDownloadProgress, map[string]any{
"device": deviceID.String(),
"folder": p.Folder,
"state": state,
@@ -2772,7 +2772,7 @@ func (m *model) GlobalDirectoryTree(folder, prefix string, levels int, dirsOnly
parent := root
if dir != "." {
for _, path := range strings.Split(dir, sep) {
for path := range strings.SplitSeq(dir, sep) {
child := findByName(parent.Children, path)
if child == nil {
return nil, fmt.Errorf("could not find child '%s' for path '%s' in parent '%s'", path, f.Name, parent.Name)
@@ -3183,7 +3183,7 @@ func (m *model) cleanPending(existingDevices map[protocol.DeviceID]config.Device
}
}
if len(removedPendingFolders) > 0 {
m.evLogger.Log(events.PendingFoldersChanged, map[string]interface{}{
m.evLogger.Log(events.PendingFoldersChanged, map[string]any{
"removed": removedPendingFolders,
})
}
@@ -3218,7 +3218,7 @@ func (m *model) cleanPending(existingDevices map[protocol.DeviceID]config.Device
})
}
if len(removedPendingDevices) > 0 {
m.evLogger.Log(events.PendingDevicesChanged, map[string]interface{}{
m.evLogger.Log(events.PendingDevicesChanged, map[string]any{
"removed": removedPendingDevices,
})
}
@@ -3264,7 +3264,7 @@ func (m *model) DismissPendingDevice(device protocol.DeviceID) error {
removedPendingDevices := []map[string]string{
{"deviceID": device.String()},
}
m.evLogger.Log(events.PendingDevicesChanged, map[string]interface{}{
m.evLogger.Log(events.PendingDevicesChanged, map[string]any{
"removed": removedPendingDevices,
})
return nil
@@ -3298,7 +3298,7 @@ func (m *model) DismissPendingFolder(device protocol.DeviceID, folder string) er
}
}
if len(removedPendingFolders) > 0 {
m.evLogger.Log(events.PendingFoldersChanged, map[string]interface{}{
m.evLogger.Log(events.PendingFoldersChanged, map[string]any{
"removed": removedPendingFolders,
})
}
+8 -8
View File
@@ -151,7 +151,7 @@ func TestRequest(t *testing.T) {
func genFiles(n int) []protocol.FileInfo {
files := make([]protocol.FileInfo, n)
t := time.Now().Unix()
for i := 0; i < n; i++ {
for i := range n {
files[i] = protocol.FileInfo{
Name: fmt.Sprintf("file%d", i),
ModifiedS: t,
@@ -1007,7 +1007,7 @@ func TestIssue5063(t *testing.T) {
reps := 10
ids := make([]string, reps)
for i := 0; i < reps; i++ {
for i := range reps {
ids[i] = srand.String(8)
wg.Go(func() { addAndVerify(ids[i]) })
}
@@ -1668,7 +1668,7 @@ func waitForState(t *testing.T, sub events.Subscription, folder, expected string
for {
select {
case ev := <-sub.C():
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
if data["folder"].(string) == folder {
if data["error"] == nil {
err = ""
@@ -1880,7 +1880,7 @@ func TestGlobalDirectoryTree(t *testing.T) {
f("zzrootfile"),
}
mm := func(data interface{}) string {
mm := func(data any) string {
bytes, err := json.MarshalIndent(data, "", " ")
if err != nil {
panic(err)
@@ -2952,7 +2952,7 @@ func TestFolderRestartZombies(t *testing.T) {
// Run a few parallel configuration changers for one second. Each waits
// for the commit to complete, but there are many of them.
var wg sync.WaitGroup
for i := 0; i < 25; i++ {
for range 25 {
wg.Go(func() {
t0 := time.Now()
for time.Since(t0) < time.Second {
@@ -3258,7 +3258,7 @@ func TestRenameSequenceOrder(t *testing.T) {
numFiles := 20
ffs := fcfg.Filesystem()
for i := 0; i < numFiles; i++ {
for i := range numFiles {
v := fmt.Sprintf("%d", i)
writeFile(t, ffs, v, []byte(v))
}
@@ -3272,7 +3272,7 @@ func TestRenameSequenceOrder(t *testing.T) {
// Modify all the files other than the rename sources, whose content we
// keep intact so the renamed copies still match by block hash.
for i := 0; i < numFiles; i++ {
for i := range numFiles {
if i == 3 || i == 16 {
continue
}
@@ -3388,7 +3388,7 @@ func TestRenameBatchFlush(t *testing.T) {
writeFile(t, ffs, "dst-a", content)
writeFile(t, ffs, "dst-b", content)
for i := range MaxBatchSizeFiles * 2 {
writeFile(t, ffs, fmt.Sprintf("filler-%04d", i), []byte(fmt.Sprintf("filler-%04d", i)))
writeFile(t, ffs, fmt.Sprintf("filler-%04d", i), fmt.Appendf(nil, "filler-%04d", i))
}
m.ScanFolders()
+1 -1
View File
@@ -200,7 +200,7 @@ func TestQueuePagination(t *testing.T) {
q := newJobQueue()
// Ten random actions
names := make([]string, 10)
for i := 0; i < 10; i++ {
for i := range 10 {
names[i] = fmt.Sprint("f", i)
q.Push(names[i], 0, time.Time{})
}
+2 -2
View File
@@ -582,7 +582,7 @@ func TestRequestSymlinkWindows(t *testing.T) {
for {
select {
case ev := <-sub.C():
switch data := ev.Data.(map[string]interface{}); {
switch data := ev.Data.(map[string]any); {
case ev.Type == events.LocalIndexUpdated:
t.Fatalf("Local index was updated unexpectedly: %v", data)
case ev.Type == events.StateChanged:
@@ -927,7 +927,7 @@ func TestNeedFolderFiles(t *testing.T) {
data := []byte("foo")
num := 20
for i := 0; i < num; i++ {
for i := range num {
fc.addFile(strconv.Itoa(i), 0o644, protocol.FileInfoTypeFile, data)
}
fc.sendIndexUpdate()
+1 -1
View File
@@ -8,7 +8,7 @@ package model
// fatal is the required common interface between *testing.B and *testing.T
type fatal interface {
Fatal(...interface{})
Fatal(...any)
Helper()
}
+1 -1
View File
@@ -284,7 +284,7 @@ func localIndexUpdate(m *testModel, folder string, fs []protocol.FileInfo) {
for i, file := range fs {
filenames[i] = file.Name
}
m.evLogger.Log(events.LocalIndexUpdated, map[string]interface{}{
m.evLogger.Log(events.LocalIndexUpdated, map[string]any{
"folder": folder,
"items": len(fs),
"filenames": filenames,
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
// (No syscall.Umask or the equivalent on Windows)
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows && !darwin
// +build !windows,!darwin
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !android
// +build !android
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build ios
// +build ios
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build (!windows && !linux && !ios) || android
// +build !windows,!linux,!ios android
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows
// +build !windows
package osutil
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package osutil
+1 -1
View File
@@ -81,7 +81,7 @@ func TestStressBufferPool(t *testing.T) {
var wg sync.WaitGroup
fail := make(chan struct{}, routines)
for i := 0; i < routines; i++ {
for range routines {
wg.Go(func() {
for time.Since(t0) < runtime {
blocks := make([][]byte, 10)
+2 -4
View File
@@ -211,12 +211,10 @@ func (e encryptedConnection) Request(ctx context.Context, req *Request) ([]byte,
// Encrypt / adjust the request parameters.
encSize := req.Size
if encSize < minPaddedSize {
encSize := max(req.Size,
// Make a request for minPaddedSize data instead of the smaller
// block. We'll chop of the extra data later.
encSize = minPaddedSize
}
minPaddedSize)
encSize += blockOverhead
encName := encryptName(req.Name, folderKey)
encOffset := req.Offset + int64(req.BlockNo*blockOverhead)
+2 -2
View File
@@ -56,7 +56,7 @@ func TestEnDecryptName(t *testing.T) {
}
for _, tc := range cases {
var prev string
for i := 0; i < 5; i++ {
for range 5 {
enc := encryptName(tc, &key)
if prev != "" && prev != enc {
t.Error("name should always encrypt the same")
@@ -124,7 +124,7 @@ func TestEnDecryptBytes(t *testing.T) {
}
for _, tc := range cases {
var prev []byte
for i := 0; i < 5; i++ {
for range 5 {
enc := encryptBytes(tc, &key)
if bytes.Equal(enc, prev) {
t.Error("encryption should not repeat")
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build darwin
// +build darwin
package protocol
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build !windows && !darwin
// +build !windows,!darwin
package protocol
-1
View File
@@ -5,7 +5,6 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
//go:build windows
// +build windows
package protocol
+2 -2
View File
@@ -310,7 +310,7 @@ func TestWriteCompressed(t *testing.T) {
}
func TestLZ4Compression(t *testing.T) {
for i := 0; i < 10; i++ {
for i := range 10 {
dataLen := 150 + rand.Intn(150)
data := make([]byte, dataLen)
_, err := io.ReadFull(rand.Reader, data[100:])
@@ -716,7 +716,7 @@ func TestIndexIDString(t *testing.T) {
}
}
func closeAndWait(c interface{}, closers ...io.Closer) {
func closeAndWait(c any, closers ...io.Closer) {
for _, closer := range closers {
closer.Close()
}
+1 -1
View File
@@ -64,7 +64,7 @@ func Intn(n int) int {
}
// Shuffle the order of elements in slice.
func Shuffle(slice interface{}) {
func Shuffle(slice any) {
rv := reflect.ValueOf(slice)
swap := reflect.Swapper(slice)
length := rv.Len()
+9 -9
View File
@@ -218,7 +218,7 @@ type Event struct {
ID int
Time time.Time
Type string
Data interface{}
Data any
}
func (p *Process) Events(since int) ([]Event, error) {
@@ -490,7 +490,7 @@ func (p *Process) eventLoop() {
// The Starting event tells us where the configuration is. Load
// it and populate our list of folders.
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
id, err := protocol.DeviceIDFromString(data["myID"].(string))
if err != nil {
log.Println("eventLoop: DeviceIdFromString:", err)
@@ -525,7 +525,7 @@ func (p *Process) eventLoop() {
select {
case <-p.startComplete:
default:
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
to := data["to"].(string)
if to == "idle" {
folder := data["folder"].(string)
@@ -537,7 +537,7 @@ func (p *Process) eventLoop() {
}
case "LocalIndexUpdated":
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
folder := data["folder"].(string)
p.eventMut.Lock()
m := p.updateSequenceLocked(folder, p.id.String(), data["sequence"])
@@ -546,7 +546,7 @@ func (p *Process) eventLoop() {
p.eventMut.Unlock()
case "RemoteIndexUpdated":
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
device := data["device"].(string)
folder := data["folder"].(string)
p.eventMut.Lock()
@@ -556,9 +556,9 @@ func (p *Process) eventLoop() {
p.eventMut.Unlock()
case "FolderSummary":
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
folder := data["folder"].(string)
summary := data["summary"].(map[string]interface{})
summary := data["summary"].(map[string]any)
need, _ := summary["needTotalItems"].(json.Number).Int64()
done := need == 0
p.eventMut.Lock()
@@ -568,7 +568,7 @@ func (p *Process) eventLoop() {
p.eventMut.Unlock()
case "FolderCompletion":
data := ev.Data.(map[string]interface{})
data := ev.Data.(map[string]any)
device := data["device"].(string)
folder := data["folder"].(string)
p.eventMut.Lock()
@@ -580,7 +580,7 @@ func (p *Process) eventLoop() {
}
}
func (p *Process) updateSequenceLocked(folder, device string, sequenceIntf interface{}) map[string]int64 {
func (p *Process) updateSequenceLocked(folder, device string, sequenceIntf any) map[string]int64 {
sequence, _ := sequenceIntf.(json.Number).Int64()
m := p.sequence[folder]
if m == nil {
+2 -2
View File
@@ -69,7 +69,7 @@ func (c *staticClient) serve(ctx context.Context) error {
slog.InfoContext(ctx, "Joined relay", slogutil.URI(fmt.Sprintf("%s://%s", c.uri.Scheme, c.uri.Host)))
messages := make(chan interface{})
messages := make(chan any)
errorsc := make(chan error, 1)
go messageReader(ctx, c.conn, messages, errorsc)
@@ -235,7 +235,7 @@ func performHandshakeAndValidation(conn *tls.Conn, uri *url.URL) error {
return nil
}
func messageReader(ctx context.Context, conn net.Conn, messages chan<- interface{}, errors chan<- error) {
func messageReader(ctx context.Context, conn net.Conn, messages chan<- any, errors chan<- error) {
for {
msg, err := protocol.ReadMessage(conn)
if err != nil {
+2 -2
View File
@@ -21,7 +21,7 @@ var (
ResponseUnexpectedMessage = Response{100, "unexpected message"}
)
func WriteMessage(w io.Writer, message interface{}) error {
func WriteMessage(w io.Writer, message any) error {
header := header{
magic: magic,
}
@@ -73,7 +73,7 @@ func WriteMessage(w io.Writer, message interface{}) error {
return err
}
func ReadMessage(r io.Reader) (interface{}, error) {
func ReadMessage(r io.Reader) (any, error) {
var header header
buf := make([]byte, header.XDRSize())
+1 -1
View File
@@ -122,7 +122,7 @@ func BenchmarkValidate(b *testing.B) {
r := mrand.New(mrand.NewSource(0x136bea689e851))
// Valid blocks.
for i := 0; i < blocksPerType; i++ {
for range blocksPerType {
var b block
b.data = make([]byte, 128<<10)
r.Read(b.data)
+1 -1
View File
@@ -125,7 +125,7 @@ func (f fakeInfo) IsRegular() bool { return !f.IsDir() }
func (fakeInfo) IsSymlink() bool { return false }
func (fakeInfo) Owner() int { return 0 }
func (fakeInfo) Group() int { return 0 }
func (fakeInfo) Sys() interface{} { return nil }
func (fakeInfo) Sys() any { return nil }
type fakeFile struct {
name string
+1 -1
View File
@@ -181,7 +181,7 @@ func (w *walker) walk(ctx context.Context) chan ScanResult {
current := progress.Total()
rate := progress.Rate()
l.Debugf("%v: Walk %s %s current progress %d/%d at %.01f MiB/s (%d%%)", w, w.Folder, w.Subs, current, total, rate/1024/1024, current*100/total)
w.EventLogger.Log(events.FolderScanProgress, map[string]interface{}{
w.EventLogger.Log(events.FolderScanProgress, map[string]any{
"folder": w.Folder,
"current": current,
"total": total,
+2 -2
View File
@@ -979,11 +979,11 @@ func testConfig() (Config, context.CancelFunc) {
func BenchmarkWalk(b *testing.B) {
testFs := fs.NewFilesystem(fs.FilesystemTypeFake, rand.String(32))
for i := 0; i < 100; i++ {
for i := range 100 {
if err := testFs.Mkdir(fmt.Sprintf("dir%d", i), 0o755); err != nil {
b.Fatal(err)
}
for j := 0; j < 100; j++ {
for j := range 100 {
if fd, err := testFs.Create(fmt.Sprintf("dir%d/file%d", i, j)); err != nil {
b.Fatal(err)
} else {

Some files were not shown because too many files have changed in this diff Show More