diff --git a/.golangci.yaml b/.golangci.yaml index 5034db70854..b637c7ed1bd 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -32,9 +32,16 @@ linters: - unused # checks for unused constants, variables, functions and types ## disable by default but the have interesting results so lets add them - bodyclose # checks whether HTTP response body is closed successfully + - dupword # dupword checks for duplicate words in the source code + - durationcheck # durationcheck checks for two durations multiplied together + - forbidigo # forbidigo forbids identifiers + - mirror # mirror reports wrong mirror patterns of bytes/strings usage + - misspell # misspess finds commonly misspelled English words in comments - nilerr # finds the code that returns nil even if it checks that the error is not nil - nilnil # checks that there is no simultaneous return of nil error and an invalid value + - predeclared # predeclared finds code that shadows one of Go's predeclared identifiers - sqlclosecheck # checks that sql.Rows and sql.Stmt are closed + - thelper # thelper detects Go test helpers without t.Helper() call and checks the consistency of test helpers. - wastedassign # wastedassign finds wasted assignment statements issues: # Maximum count of issues with the same text. @@ -43,12 +50,20 @@ issues: max-same-issues: 5 exclude-rules: + # allow fmt + - path: management/cmd/root.go + linters: forbidigo + - path: signal/cmd/root.go + linters: forbidigo - path: sharedsock/filter.go linters: - unused - path: client/firewall/iptables/rule.go linters: - unused + - path: test.go + linters: + - mirror - path: mock.go linters: - - nilnil \ No newline at end of file + - nilnil diff --git a/client/android/login.go b/client/android/login.go index afd61055f07..3840c75c112 100644 --- a/client/android/login.go +++ b/client/android/login.go @@ -205,8 +205,8 @@ func (a *Auth) foregroundGetTokenInfo(urlOpener URLOpener) (*auth.TokenInfo, err go urlOpener.Open(flowInfo.VerificationURIComplete) - waitTimeout := time.Duration(flowInfo.ExpiresIn) - waitCTX, cancel := context.WithTimeout(a.ctx, waitTimeout*time.Second) + waitTimeout := time.Duration(flowInfo.ExpiresIn) * time.Second + waitCTX, cancel := context.WithTimeout(a.ctx, waitTimeout) defer cancel() tokenInfo, err := oAuthFlow.WaitToken(waitCTX, flowInfo) if err != nil { diff --git a/client/cmd/login.go b/client/cmd/login.go index 2ddab46f35c..b643556494a 100644 --- a/client/cmd/login.go +++ b/client/cmd/login.go @@ -177,8 +177,8 @@ func foregroundGetTokenInfo(ctx context.Context, cmd *cobra.Command, config *int openURL(cmd, flowInfo.VerificationURIComplete, flowInfo.UserCode) - waitTimeout := time.Duration(flowInfo.ExpiresIn) - waitCTX, c := context.WithTimeout(context.TODO(), waitTimeout*time.Second) + waitTimeout := time.Duration(flowInfo.ExpiresIn) * time.Second + waitCTX, c := context.WithTimeout(context.TODO(), waitTimeout) defer c() tokenInfo, err := oAuthFlow.WaitToken(waitCTX, flowInfo) diff --git a/client/cmd/root.go b/client/cmd/root.go index 770bd21fa62..24c027d0c0d 100644 --- a/client/cmd/root.go +++ b/client/cmd/root.go @@ -92,7 +92,7 @@ func init() { rootCmd.PersistentFlags().StringVar(&adminURL, "admin-url", "", fmt.Sprintf("Admin Panel URL [http|https]://[host]:[port] (default \"%s\")", internal.DefaultAdminURL)) rootCmd.PersistentFlags().StringVarP(&configPath, "config", "c", defaultConfigPath, "Netbird config file location") rootCmd.PersistentFlags().StringVarP(&logLevel, "log-level", "l", "info", "sets Netbird log level") - rootCmd.PersistentFlags().StringVar(&logFile, "log-file", defaultLogFile, "sets Netbird log path. If console is specified the the log will be output to stdout") + rootCmd.PersistentFlags().StringVar(&logFile, "log-file", defaultLogFile, "sets Netbird log path. If console is specified the log will be output to stdout") rootCmd.PersistentFlags().StringVarP(&setupKey, "setup-key", "k", "", "Setup key obtained from the Management Service Dashboard (used to register peer)") rootCmd.PersistentFlags().StringVar(&preSharedKey, "preshared-key", "", "Sets Wireguard PreSharedKey property. If set, then only peers that have the same key can communicate.") rootCmd.PersistentFlags().StringVarP(&hostName, "hostname", "n", "", "Sets a custom hostname for the device") diff --git a/client/cmd/testutil.go b/client/cmd/testutil.go index 47ae9ddb466..c90faa24ae4 100644 --- a/client/cmd/testutil.go +++ b/client/cmd/testutil.go @@ -22,6 +22,7 @@ import ( ) func startTestingServices(t *testing.T) string { + t.Helper() config := &mgmt.Config{} _, err := util.ReadJson("../testdata/management.json", config) if err != nil { @@ -44,6 +45,7 @@ func startTestingServices(t *testing.T) string { } func startSignal(t *testing.T) (*grpc.Server, net.Listener) { + t.Helper() lis, err := net.Listen("tcp", ":0") if err != nil { t.Fatal(err) @@ -60,6 +62,7 @@ func startSignal(t *testing.T) (*grpc.Server, net.Listener) { } func startManagement(t *testing.T, config *mgmt.Config) (*grpc.Server, net.Listener) { + t.Helper() lis, err := net.Listen("tcp", ":0") if err != nil { t.Fatal(err) @@ -98,6 +101,7 @@ func startManagement(t *testing.T, config *mgmt.Config) (*grpc.Server, net.Liste func startClientDaemon( t *testing.T, ctx context.Context, managementURL, configPath string, ) (*grpc.Server, net.Listener) { + t.Helper() lis, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { t.Fatal(err) diff --git a/client/firewall/iptables/manager_linux_test.go b/client/firewall/iptables/manager_linux_test.go index 2d2013aa26d..90375d3e218 100644 --- a/client/firewall/iptables/manager_linux_test.go +++ b/client/firewall/iptables/manager_linux_test.go @@ -206,6 +206,7 @@ func TestIptablesManagerIPSet(t *testing.T) { } func checkRuleSpecs(t *testing.T, ipv4Client *iptables.IPTables, chainName string, mustExists bool, rulespec ...string) { + t.Helper() exists, err := ipv4Client.Exists("filter", chainName, rulespec...) require.NoError(t, err, "failed to check rule") require.Falsef(t, !exists && mustExists, "rule '%v' does not exist", rulespec) diff --git a/client/internal/dns/server_test.go b/client/internal/dns/server_test.go index 51cc9c8c4c2..62b4e186718 100644 --- a/client/internal/dns/server_test.go +++ b/client/internal/dns/server_test.go @@ -771,6 +771,7 @@ func TestDNSPermanent_matchOnly(t *testing.T) { } func createWgInterfaceWithBind(t *testing.T) (*iface.WGIface, error) { + t.Helper() ov := os.Getenv("NB_WG_KERNEL_DISABLED") defer os.Setenv("NB_WG_KERNEL_DISABLED", ov) diff --git a/client/internal/engine.go b/client/internal/engine.go index a81fabde6eb..35fd822f2d5 100644 --- a/client/internal/engine.go +++ b/client/internal/engine.go @@ -640,7 +640,7 @@ func (e *Engine) updateNetworkMap(networkMap *mgmProto.NetworkMap) error { if config.GetSshConfig() != nil && config.GetSshConfig().GetSshPubKey() != nil { err := e.sshServer.AddAuthorizedKey(config.WgPubKey, string(config.GetSshConfig().GetSshPubKey())) if err != nil { - log.Warnf("failed adding authroized key to SSH DefaultServer %v", err) + log.Warnf("failed adding authorized key to SSH DefaultServer %v", err) } } } diff --git a/client/internal/peer/status.go b/client/internal/peer/status.go index f75991d8572..c69354eaca5 100644 --- a/client/internal/peer/status.go +++ b/client/internal/peer/status.go @@ -174,13 +174,13 @@ func (d *Status) UpdatePeerState(receivedState State) error { return nil } -func shouldSkipNotify(new, curr State) bool { +func shouldSkipNotify(received, curr State) bool { switch { - case new.ConnStatus == StatusConnecting: + case received.ConnStatus == StatusConnecting: return true - case new.ConnStatus == StatusDisconnected && curr.ConnStatus == StatusConnecting: + case received.ConnStatus == StatusDisconnected && curr.ConnStatus == StatusConnecting: return true - case new.ConnStatus == StatusDisconnected && curr.ConnStatus == StatusDisconnected: + case received.ConnStatus == StatusDisconnected && curr.ConnStatus == StatusDisconnected: return curr.IP != "" default: return false diff --git a/client/internal/routemanager/systemops_nonandroid_test.go b/client/internal/routemanager/systemops_nonandroid_test.go index 68c0e1d262b..bb31834d1e6 100644 --- a/client/internal/routemanager/systemops_nonandroid_test.go +++ b/client/internal/routemanager/systemops_nonandroid_test.go @@ -123,7 +123,7 @@ func TestGetExistingRIBRouteGateway(t *testing.T) { func TestAddExistAndRemoveRouteNonAndroid(t *testing.T) { defaultGateway, err := getExistingRIBRouteGateway(netip.MustParsePrefix("0.0.0.0/0")) - fmt.Println("defaultGateway: ", defaultGateway) + t.Log("defaultGateway: ", defaultGateway) if err != nil { t.Fatal("shouldn't return error when fetching the gateway: ", err) } @@ -207,7 +207,7 @@ func TestAddExistAndRemoveRouteNonAndroid(t *testing.T) { // route should either not have been added or should have been removed // In case of already existing route, it should not have been added (but still exist) ok, err := existsInRouteTable(testCase.prefix) - fmt.Println("Buffer string: ", buf.String()) + t.Log("Buffer string: ", buf.String()) require.NoError(t, err, "should not return err") if !strings.Contains(buf.String(), "because it already exists") { require.False(t, ok, "route should not exist") diff --git a/client/system/info_darwin.go b/client/system/info_darwin.go index e153539bb20..621a8269173 100644 --- a/client/system/info_darwin.go +++ b/client/system/info_darwin.go @@ -3,7 +3,6 @@ package system import ( "bytes" "context" - "fmt" "os" "os/exec" "runtime" @@ -21,7 +20,7 @@ func GetInfo(ctx context.Context) *Info { utsname := unix.Utsname{} err := unix.Uname(&utsname) if err != nil { - fmt.Println("getInfo:", err) + log.Warnf("getInfo: %s", err) } sysName := string(bytes.Split(utsname.Sysname[:], []byte{0})[0]) machine := string(bytes.Split(utsname.Machine[:], []byte{0})[0]) diff --git a/client/system/info_linux.go b/client/system/info_linux.go index 7d43fc0356a..a4ab9f9312f 100644 --- a/client/system/info_linux.go +++ b/client/system/info_linux.go @@ -6,13 +6,14 @@ package system import ( "bytes" "context" - "fmt" "os" "os/exec" "runtime" "strings" "time" + log "github.com/sirupsen/logrus" + "github.com/netbirdio/netbird/version" ) @@ -67,7 +68,7 @@ func _getInfo() string { cmd.Stderr = &stderr err := cmd.Run() if err != nil { - fmt.Println("getInfo:", err) + log.Warnf("getInfo: %s", err) } return out.String() } @@ -81,7 +82,7 @@ func _getReleaseInfo() string { cmd.Stderr = &stderr err := cmd.Run() if err != nil { - fmt.Println("getReleaseInfo:", err) + log.Warnf("geucwReleaseInfo: %s", err) } return out.String() } diff --git a/client/ui/client_ui.go b/client/ui/client_ui.go index e66d03d951e..da230e214e2 100644 --- a/client/ui/client_ui.go +++ b/client/ui/client_ui.go @@ -69,7 +69,7 @@ func main() { a.Run() } else { if err := checkPIDFile(); err != nil { - fmt.Println(err) + log.Errorf("check PID file: %v", err) return } systray.Run(client.onTrayReady, client.onTrayExit) diff --git a/iface/module_linux_test.go b/iface/module_linux_test.go index d61245549fa..97e9b1f78b5 100644 --- a/iface/module_linux_test.go +++ b/iface/module_linux_test.go @@ -132,6 +132,7 @@ func resetGlobals() { } func createFiles(t *testing.T) (string, []module) { + t.Helper() writeFile := func(path, text string) { if err := os.WriteFile(path, []byte(text), 0644); err != nil { t.Fatal(err) @@ -167,6 +168,7 @@ func createFiles(t *testing.T) (string, []module) { } func getRandomLoadedModule(t *testing.T) (string, error) { + t.Helper() f, err := os.Open("/proc/modules") if err != nil { return "", err diff --git a/management/client/client_test.go b/management/client/client_test.go index 889b7a13143..ab8df99df60 100644 --- a/management/client/client_test.go +++ b/management/client/client_test.go @@ -31,6 +31,7 @@ import ( const ValidKey = "A2C8E62B-38F5-4553-B31E-DD66C696CEBB" func startManagement(t *testing.T) (*grpc.Server, net.Listener) { + t.Helper() level, _ := log.ParseLevel("debug") log.SetLevel(level) @@ -81,6 +82,7 @@ func startManagement(t *testing.T) (*grpc.Server, net.Listener) { } func startMockManagement(t *testing.T) (*grpc.Server, net.Listener, *mock_server.ManagementServiceServerMock, wgtypes.Key) { + t.Helper() lis, err := net.Listen("tcp", ":0") if err != nil { t.Fatal(err) @@ -168,7 +170,7 @@ func TestClient_LoginUnregistered_ShouldThrow_401(t *testing.T) { t.Error("expecting err on unregistered login, got nil") } if s, ok := status.FromError(err); !ok || s.Code() != codes.PermissionDenied { - t.Errorf("expecting err code %d denied on on unregistered login got %d", codes.PermissionDenied, s.Code()) + t.Errorf("expecting err code %d denied on unregistered login got %d", codes.PermissionDenied, s.Code()) } } diff --git a/management/cmd/root.go b/management/cmd/root.go index de8b5b8b3b3..1c9b95bfd2a 100644 --- a/management/cmd/root.go +++ b/management/cmd/root.go @@ -67,7 +67,7 @@ func init() { rootCmd.MarkFlagRequired("config") //nolint rootCmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "") - rootCmd.PersistentFlags().StringVar(&logFile, "log-file", defaultLogFile, "sets Netbird log path. If console is specified the the log will be output to stdout") + rootCmd.PersistentFlags().StringVar(&logFile, "log-file", defaultLogFile, "sets Netbird log path. If console is specified the log will be output to stdout") rootCmd.AddCommand(mgmtCmd) migrationCmd.PersistentFlags().StringVar(&mgmtDataDir, "datadir", defaultMgmtDataDir, "server data directory location") diff --git a/management/server/account.go b/management/server/account.go index 72966065076..7ec67bfa7f8 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -1574,7 +1574,7 @@ func (am *DefaultAccountManager) GetAllConnectedPeers() (map[string]struct{}, er func isDomainValid(domain string) bool { re := regexp.MustCompile(`^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$`) - return re.Match([]byte(domain)) + return re.MatchString(domain) } // GetDNSDomain returns the configured dnsDomain diff --git a/management/server/account_test.go b/management/server/account_test.go index 0d707bde93a..181d0447b9a 100644 --- a/management/server/account_test.go +++ b/management/server/account_test.go @@ -25,6 +25,7 @@ import ( ) func verifyCanAddPeerToAccount(t *testing.T, manager AccountManager, account *Account, userID string) { + t.Helper() peer := &Peer{ Key: "BhRPtynAAYRDy08+q4HTMsos8fs4plTP4NOSh7C1ry8=", Name: "test-host@netbird.io", @@ -52,6 +53,7 @@ func verifyCanAddPeerToAccount(t *testing.T, manager AccountManager, account *Ac } func verifyNewAccountHasDefaultFields(t *testing.T, account *Account, createdBy string, domain string, expectedUsers []string) { + t.Helper() if len(account.Peers) != 0 { t.Errorf("expected account to have len(Peers) = %v, got %v", 0, len(account.Peers)) } @@ -1131,6 +1133,7 @@ func TestAccountManager_DeletePeer(t *testing.T) { } func getEvent(t *testing.T, accountID string, manager AccountManager, eventType activity.Activity) *activity.Event { + t.Helper() for { select { case <-time.After(time.Second): @@ -2038,6 +2041,7 @@ func TestAccount_UserGroupsRemoveFromPeers(t *testing.T) { } func createManager(t *testing.T) (*DefaultAccountManager, error) { + t.Helper() store, err := createStore(t) if err != nil { return nil, err @@ -2047,6 +2051,7 @@ func createManager(t *testing.T) (*DefaultAccountManager, error) { } func createStore(t *testing.T) (Store, error) { + t.Helper() dataDir := t.TempDir() store, err := NewStoreFromJson(dataDir, nil) if err != nil { diff --git a/management/server/dns_test.go b/management/server/dns_test.go index a2c9d3aa2f7..54044cf9305 100644 --- a/management/server/dns_test.go +++ b/management/server/dns_test.go @@ -186,6 +186,7 @@ func TestGetNetworkMap_DNSConfigSync(t *testing.T) { } func createDNSManager(t *testing.T) (*DefaultAccountManager, error) { + t.Helper() store, err := createDNSStore(t) if err != nil { return nil, err @@ -195,6 +196,7 @@ func createDNSManager(t *testing.T) (*DefaultAccountManager, error) { } func createDNSStore(t *testing.T) (Store, error) { + t.Helper() dataDir := t.TempDir() store, err := NewStoreFromJson(dataDir, nil) if err != nil { @@ -205,6 +207,7 @@ func createDNSStore(t *testing.T) (Store, error) { } func initTestDNSAccount(t *testing.T, am *DefaultAccountManager) (*Account, error) { + t.Helper() peer1 := &Peer{ Key: dnsPeer1Key, Name: "test-host1@netbird.io", diff --git a/management/server/event_test.go b/management/server/event_test.go index 320728eef32..401c80759c6 100644 --- a/management/server/event_test.go +++ b/management/server/event_test.go @@ -11,6 +11,7 @@ import ( func generateAndStoreEvents(t *testing.T, manager *DefaultAccountManager, typ activity.Activity, initiatorID, targetID, accountID string, count int) { + t.Helper() for i := 0; i < count; i++ { _, err := manager.eventStore.Save(&activity.Event{ Timestamp: time.Now().UTC(), diff --git a/management/server/file_store_test.go b/management/server/file_store_test.go index 705e9f14935..206873d2022 100644 --- a/management/server/file_store_test.go +++ b/management/server/file_store_test.go @@ -580,6 +580,7 @@ func TestFileStore_SavePeerStatus(t *testing.T) { } func newStore(t *testing.T) *FileStore { + t.Helper() store, err := NewFileStore(t.TempDir(), nil) if err != nil { t.Errorf("failed creating a new store") diff --git a/management/server/http/groups_handler_test.go b/management/server/http/groups_handler_test.go index aad03d50bed..5f40be7a904 100644 --- a/management/server/http/groups_handler_test.go +++ b/management/server/http/groups_handler_test.go @@ -230,7 +230,7 @@ func TestWriteGroup(t *testing.T) { expectedBody: false, }, { - name: "Write Group PUT not not change Issue", + name: "Write Group PUT not change Issue", requestType: http.MethodPut, requestPath: "/api/groups/id-jwt-group", requestBody: bytes.NewBuffer( diff --git a/management/server/http/peers_handler_test.go b/management/server/http/peers_handler_test.go index e61c6905c64..673cd90c578 100644 --- a/management/server/http/peers_handler_test.go +++ b/management/server/http/peers_handler_test.go @@ -3,7 +3,6 @@ package http import ( "bytes" "encoding/json" - "fmt" "io" "net" "net/http" @@ -232,7 +231,7 @@ func TestGetPeers(t *testing.T) { } } - fmt.Println(got) + t.Log(got) assert.Equal(t, got.Name, tc.expectedPeer.Name) assert.Equal(t, got.Version, tc.expectedPeer.Meta.WtVersion) diff --git a/management/server/http/setupkeys_handler_test.go b/management/server/http/setupkeys_handler_test.go index d931a5e0b42..7b68479eddd 100644 --- a/management/server/http/setupkeys_handler_test.go +++ b/management/server/http/setupkeys_handler_test.go @@ -220,6 +220,7 @@ func TestSetupKeysHandlers(t *testing.T) { } func assertKeys(t *testing.T, got *api.SetupKey, expected *api.SetupKey) { + t.Helper() // this comparison is done manually because when converting to JSON dates formatted differently // assert.Equal(t, got.UpdatedAt, tc.expectedSetupKey.UpdatedAt) //doesn't work assert.WithinDurationf(t, got.UpdatedAt, expected.UpdatedAt, 0, "") diff --git a/management/server/idp/auth0_test.go b/management/server/idp/auth0_test.go index 63c634d4ee1..febc0ab8901 100644 --- a/management/server/idp/auth0_test.go +++ b/management/server/idp/auth0_test.go @@ -65,6 +65,7 @@ func (mc *mockAuth0Credentials) Authenticate() (JWTToken, error) { } func newTestJWT(t *testing.T, expInt int) string { + t.Helper() now := time.Now() token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "iat": now.Unix(), diff --git a/management/server/idp/okta.go b/management/server/idp/okta.go index 67341a26ff0..d20ee7e4839 100644 --- a/management/server/idp/okta.go +++ b/management/server/idp/okta.go @@ -256,7 +256,6 @@ func (om *OktaManager) InviteUserByID(_ string) error { func (om *OktaManager) DeleteUser(userID string) error { resp, err := om.client.User.DeactivateOrDeleteUser(context.Background(), userID, nil) if err != nil { - fmt.Println(err.Error()) return err } diff --git a/management/server/jwtclaims/extractor_test.go b/management/server/jwtclaims/extractor_test.go index f2cbb1ebede..e9316b194c0 100644 --- a/management/server/jwtclaims/extractor_test.go +++ b/management/server/jwtclaims/extractor_test.go @@ -11,6 +11,7 @@ import ( ) func newTestRequestWithJWT(t *testing.T, claims AuthorizationClaims, audience string) *http.Request { + t.Helper() const layout = "2006-01-02T15:04:05.999Z" claimMaps := jwt.MapClaims{} @@ -143,6 +144,7 @@ func TestExtractClaimsFromRequestContext(t *testing.T) { } func TestExtractClaimsSetOptions(t *testing.T) { + t.Helper() type test struct { name string extractor *ClaimsExtractor @@ -153,6 +155,7 @@ func TestExtractClaimsSetOptions(t *testing.T) { name: "No custom options", extractor: NewClaimsExtractor(), check: func(t *testing.T, c test) { + t.Helper() if c.extractor.authAudience != "" { t.Error("audience should be empty") return @@ -172,6 +175,7 @@ func TestExtractClaimsSetOptions(t *testing.T) { name: "Custom audience", extractor: NewClaimsExtractor(WithAudience("https://login/")), check: func(t *testing.T, c test) { + t.Helper() if c.extractor.authAudience != "https://login/" { t.Errorf("audience expected %s, got %s", "https://login/", c.extractor.authAudience) return @@ -183,6 +187,7 @@ func TestExtractClaimsSetOptions(t *testing.T) { name: "Custom user id claim", extractor: NewClaimsExtractor(WithUserIDClaim("customUserId")), check: func(t *testing.T, c test) { + t.Helper() if c.extractor.userIDClaim != "customUserId" { t.Errorf("user id claim expected %s, got %s", "customUserId", c.extractor.userIDClaim) return @@ -199,6 +204,7 @@ func TestExtractClaimsSetOptions(t *testing.T) { } })), check: func(t *testing.T, c test) { + t.Helper() claims := c.extractor.FromRequestContext(&http.Request{}) if claims.UserId != "testCustomRequest" { t.Errorf("user id claim expected %s, got %s", "testCustomRequest", claims.UserId) diff --git a/management/server/management_proto_test.go b/management/server/management_proto_test.go index 06fc6669de1..000f6c9de07 100644 --- a/management/server/management_proto_test.go +++ b/management/server/management_proto_test.go @@ -400,6 +400,7 @@ func TestServer_GetDeviceAuthorizationFlow(t *testing.T) { } func startManagement(t *testing.T, config *Config) (*grpc.Server, string, error) { + t.Helper() lis, err := net.Listen("tcp", "localhost:0") if err != nil { return nil, "", err diff --git a/management/server/mock_server/account_mock.go b/management/server/mock_server/account_mock.go index 46b8551c56b..33ce5498c06 100644 --- a/management/server/mock_server/account_mock.go +++ b/management/server/mock_server/account_mock.go @@ -355,7 +355,7 @@ func (am *MockAccountManager) UpdatePeerSSHKey(peerID string, sshKey string) err if am.UpdatePeerSSHKeyFunc != nil { return am.UpdatePeerSSHKeyFunc(peerID, sshKey) } - return status.Errorf(codes.Unimplemented, "method UpdatePeerSSHKey is is not implemented") + return status.Errorf(codes.Unimplemented, "method UpdatePeerSSHKey is not implemented") } // UpdatePeer mocks UpdatePeerFunc function of the account manager @@ -363,7 +363,7 @@ func (am *MockAccountManager) UpdatePeer(accountID, userID string, peer *server. if am.UpdatePeerFunc != nil { return am.UpdatePeerFunc(accountID, userID, peer) } - return nil, status.Errorf(codes.Unimplemented, "method UpdatePeerFunc is is not implemented") + return nil, status.Errorf(codes.Unimplemented, "method UpdatePeerFunc is not implemented") } // CreateRoute mock implementation of CreateRoute from server.AccountManager interface diff --git a/management/server/nameserver_test.go b/management/server/nameserver_test.go index 6210ae538fb..6a08706caf0 100644 --- a/management/server/nameserver_test.go +++ b/management/server/nameserver_test.go @@ -741,6 +741,7 @@ func TestGetNameServerGroup(t *testing.T) { } func createNSManager(t *testing.T) (*DefaultAccountManager, error) { + t.Helper() store, err := createNSStore(t) if err != nil { return nil, err @@ -750,6 +751,7 @@ func createNSManager(t *testing.T) (*DefaultAccountManager, error) { } func createNSStore(t *testing.T) (Store, error) { + t.Helper() dataDir := t.TempDir() store, err := NewStoreFromJson(dataDir, nil) if err != nil { @@ -760,6 +762,7 @@ func createNSStore(t *testing.T) (Store, error) { } func initTestNSAccount(t *testing.T, am *DefaultAccountManager) (*Account, error) { + t.Helper() peer1 := &Peer{ Key: nsGroupPeer1Key, Name: "test-host1@netbird.io", diff --git a/management/server/route_test.go b/management/server/route_test.go index efd73d6c2d1..e55e7692831 100644 --- a/management/server/route_test.go +++ b/management/server/route_test.go @@ -1007,6 +1007,7 @@ func TestGetNetworkMap_RouteSync(t *testing.T) { } func createRouterManager(t *testing.T) (*DefaultAccountManager, error) { + t.Helper() store, err := createRouterStore(t) if err != nil { return nil, err @@ -1016,6 +1017,7 @@ func createRouterManager(t *testing.T) (*DefaultAccountManager, error) { } func createRouterStore(t *testing.T) (Store, error) { + t.Helper() dataDir := t.TempDir() store, err := NewStoreFromJson(dataDir, nil) if err != nil { diff --git a/management/server/setupkey_test.go b/management/server/setupkey_test.go index 6da01bd82ff..b104a6959e8 100644 --- a/management/server/setupkey_test.go +++ b/management/server/setupkey_test.go @@ -237,6 +237,7 @@ func TestSetupKey_IsValid(t *testing.T) { func assertKey(t *testing.T, key *SetupKey, expectedName string, expectedRevoke bool, expectedType string, expectedUsedTimes int, expectedCreatedAt time.Time, expectedExpiresAt time.Time, expectedID string, expectedUpdatedAt time.Time, expectedAutoGroups []string) { + t.Helper() if key.Name != expectedName { t.Errorf("expected setup key to have Name %v, got %v", expectedName, key.Name) } diff --git a/management/server/store_test.go b/management/server/store_test.go index 72bbaf9498e..3f8c5d18b9a 100644 --- a/management/server/store_test.go +++ b/management/server/store_test.go @@ -14,11 +14,13 @@ type benchCase struct { } var newFs = func(b *testing.B) Store { + b.Helper() store, _ := NewFileStore(b.TempDir(), nil) return store } var newSqlite = func(b *testing.B) Store { + b.Helper() store, _ := NewSqliteStore(b.TempDir(), nil) return store } diff --git a/management/server/telemetry/grpc_metrics.go b/management/server/telemetry/grpc_metrics.go index 25789f5c752..8ad2f3bded4 100644 --- a/management/server/telemetry/grpc_metrics.go +++ b/management/server/telemetry/grpc_metrics.go @@ -116,6 +116,6 @@ func (grpcMetrics *GRPCMetrics) RegisterConnectedStreams(producer func() int64) } // UpdateChannelQueueLength update the histogram that keep distribution of the update messages channel queue -func (metrics *GRPCMetrics) UpdateChannelQueueLength(len int) { - metrics.channelQueueLength.Record(metrics.ctx, int64(len)) +func (metrics *GRPCMetrics) UpdateChannelQueueLength(length int) { + metrics.channelQueueLength.Record(metrics.ctx, int64(length)) } diff --git a/management/server/turncredentials_test.go b/management/server/turncredentials_test.go index c91176ac3f6..a8d282266e9 100644 --- a/management/server/turncredentials_test.go +++ b/management/server/turncredentials_test.go @@ -4,9 +4,10 @@ import ( "crypto/hmac" "crypto/sha1" "encoding/base64" - "github.com/netbirdio/netbird/util" "testing" "time" + + "github.com/netbirdio/netbird/util" ) var TurnTestHost = &Host{ @@ -36,7 +37,7 @@ func TestTimeBasedAuthSecretsManager_GenerateCredentials(t *testing.T) { t.Errorf("expected generated TURN password not to be empty, got empty") } - validateMAC(credentials.Username, credentials.Password, []byte(secret), t) + validateMAC(t, credentials.Username, credentials.Password, []byte(secret)) } @@ -112,7 +113,8 @@ func TestTimeBasedAuthSecretsManager_CancelRefresh(t *testing.T) { } } -func validateMAC(username string, actualMAC string, key []byte, t *testing.T) { +func validateMAC(t *testing.T, username string, actualMAC string, key []byte) { + t.Helper() mac := hmac.New(sha1.New, key) _, err := mac.Write([]byte(username)) diff --git a/sharedsock/example/main.go b/sharedsock/example/main.go index 7c879b4c940..9384d2b1cf0 100644 --- a/sharedsock/example/main.go +++ b/sharedsock/example/main.go @@ -2,10 +2,11 @@ package main import ( "context" - "github.com/netbirdio/netbird/sharedsock" - log "github.com/sirupsen/logrus" "os" "os/signal" + + "github.com/netbirdio/netbird/sharedsock" + log "github.com/sirupsen/logrus" ) func main() { @@ -16,7 +17,7 @@ func main() { panic(err) } - log.Infof("attached to to the raw socket on port %d", port) + log.Infof("attached to the raw socket on port %d", port) ctx, cancel := context.WithCancel(context.Background()) // read packets diff --git a/signal/cmd/root.go b/signal/cmd/root.go index 479579c7eed..7fa75d92371 100644 --- a/signal/cmd/root.go +++ b/signal/cmd/root.go @@ -47,7 +47,7 @@ func init() { } rootCmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "") - rootCmd.PersistentFlags().StringVar(&logFile, "log-file", defaultLogFile, "sets Netbird log path. If console is specified the the log will be output to stdout") + rootCmd.PersistentFlags().StringVar(&logFile, "log-file", defaultLogFile, "sets Netbird log path. If console is specified the log will be output to stdout") rootCmd.AddCommand(runCmd) }