diff --git a/core/ordering/cosipbft/blockstore/disk.go b/core/ordering/cosipbft/blockstore/disk.go index d6af59d48..d980ae615 100644 --- a/core/ordering/cosipbft/blockstore/disk.go +++ b/core/ordering/cosipbft/blockstore/disk.go @@ -166,10 +166,12 @@ func (s *InDisk) Get(id types.Digest) (types.BlockLink, error) { // GetByIndex implements blockstore.BlockStore. It returns the block associated // to the index if it exists, otherwise it returns an error. -func (s *InDisk) GetByIndex(index uint64) (link types.BlockLink, err error) { +func (s *InDisk) GetByIndex(index uint64) (types.BlockLink, error) { + var link types.BlockLink + key := s.makeKey(index) - err = s.doView(func(tx kv.ReadableTx) error { + err := s.doView(func(tx kv.ReadableTx) error { bucket := tx.GetBucket(s.bucket) value := bucket.Get(key) @@ -187,7 +189,7 @@ func (s *InDisk) GetByIndex(index uint64) (link types.BlockLink, err error) { return nil }) - return + return link, err } // GetChain implements blockstore.Blockstore. It returns a chain to the latest diff --git a/crypto/bls/command/action.go b/crypto/bls/command/action.go index a77c794e3..aedcf913a 100644 --- a/crypto/bls/command/action.go +++ b/crypto/bls/command/action.go @@ -13,6 +13,10 @@ import ( "golang.org/x/xerrors" ) +const Base64Pubkey = "Base64Pubkey" +const Base64 = "Base64" +const Pubkey = "Pubkey" + // action defines the different cli actions of the BLS commands. Defining // functions and printer helps in testing the commands. type action struct { @@ -53,10 +57,10 @@ func (a action) loadSignerAction(flags cli.Flags) error { var out []byte switch flags.String("format") { - case "PUBKEY": + case Pubkey: pubkey, err := a.getPubKey(data) if err != nil { - return xerrors.Errorf("failed to get PUBKEY: %v", err) + return xerrors.Errorf("failed to get Pubkey: %v", err) } out, err = pubkey.MarshalText() @@ -64,10 +68,10 @@ func (a action) loadSignerAction(flags cli.Flags) error { return xerrors.Errorf("failed to marshal pubkey: %v", err) } - case "BASE64_PUBKEY": + case Base64Pubkey: pubkey, err := a.getPubKey(data) if err != nil { - return xerrors.Errorf("failed to get PUBKEY: %v", err) + return xerrors.Errorf("failed to get Pubkey: %v", err) } buf, err := pubkey.MarshalBinary() @@ -77,7 +81,7 @@ func (a action) loadSignerAction(flags cli.Flags) error { out = []byte(base64.StdEncoding.EncodeToString(buf)) - case "BASE64": + case Base64: out = []byte(base64.StdEncoding.EncodeToString(data)) default: diff --git a/crypto/bls/command/action_test.go b/crypto/bls/command/action_test.go index 89f836632..0c7345a0d 100644 --- a/crypto/bls/command/action_test.go +++ b/crypto/bls/command/action_test.go @@ -50,30 +50,30 @@ func TestLoadSignerAction(t *testing.T) { err = action.loadSignerAction(set) require.EqualError(t, err, "unknown format ''") - set["format"] = "PUBKEY" + set["format"] = Pubkey action.getPubKey = badGetPubKey err = action.loadSignerAction(set) - require.EqualError(t, err, fake.Err("failed to get PUBKEY")) + require.EqualError(t, err, fake.Err("failed to get Pubkey")) action.getPubKey = wrongGetPubKey err = action.loadSignerAction(set) require.EqualError(t, err, fake.Err("failed to marshal pubkey")) - set["format"] = "BASE64_PUBKEY" + set["format"] = Base64Pubkey action.getPubKey = badGetPubKey err = action.loadSignerAction(set) - require.EqualError(t, err, fake.Err("failed to get PUBKEY")) + require.EqualError(t, err, fake.Err("failed to get Pubkey")) action.getPubKey = wrongGetPubKey err = action.loadSignerAction(set) require.EqualError(t, err, fake.Err("failed to marshal pubkey")) - set["format"] = "BASE64_PUBKEY" + set["format"] = Base64Pubkey action.getPubKey = fakeGetPubKey err = action.loadSignerAction(set) require.NoError(t, err) - set["format"] = "BASE64" + set["format"] = Base64 action.getPubKey = badGetPubKey err = action.loadSignerAction(set) require.NoError(t, err) @@ -128,19 +128,19 @@ func badGenSigner() ([]byte, error) { return nil, fake.GetError() } -func badReadFile(path string) ([]byte, error) { +func badReadFile(_ string) ([]byte, error) { return nil, fake.GetError() } -func badSaveFile(path string, force bool, data []byte) error { +func badSaveFile(_ string, _ bool, _ []byte) error { return fake.GetError() } -func fakeReadFile(path string) ([]byte, error) { +func fakeReadFile(_ string) ([]byte, error) { return nil, nil } -func fakeSaveFile(path string, force bool, data []byte) error { +func fakeSaveFile(_ string, _ bool, _ []byte) error { return nil } diff --git a/crypto/bls/command/command.go b/crypto/bls/command/command.go index 15da38f4e..e56657497 100644 --- a/crypto/bls/command/command.go +++ b/crypto/bls/command/command.go @@ -28,9 +28,9 @@ func (i Initializer) SetCommands(provider cli.Provider) { cmd := provider.SetCommand("bls") signer := cmd.SetSubCommand("signer") - new := signer.SetSubCommand("new") - new.SetDescription("create a new bls signer") - new.SetFlags(cli.StringFlag{ + newsigner := signer.SetSubCommand("newsigner") + newsigner.SetDescription("create a newsigner bls signer") + newsigner.SetFlags(cli.StringFlag{ Name: "save", Usage: "if provided, save the signer to that file", Required: false, @@ -39,7 +39,7 @@ func (i Initializer) SetCommands(provider cli.Provider) { Usage: "in the case it saves the signer, will overwrite if needed", Required: false, }) - new.SetAction(action.newSignerAction) + newsigner.SetAction(action.newSignerAction) read := signer.SetSubCommand("read") read.SetDescription("read a signer") @@ -49,8 +49,8 @@ func (i Initializer) SetCommands(provider cli.Provider) { Required: true, }, cli.StringFlag{ Name: "format", - Usage: "output format: [PUBKEY | BASE64 | BASE64_PUBKEY]", - Value: "PUBKEY", + Usage: "output format: [Pubkey | Base64 | Base64Pubkey]", + Value: "Pubkey", Required: false, }) read.SetAction(action.loadSignerAction) diff --git a/crypto/ed25519/json/json_test.go b/crypto/ed25519/json/json_test.go index f349f69f1..f8dc47a38 100644 --- a/crypto/ed25519/json/json_test.go +++ b/crypto/ed25519/json/json_test.go @@ -43,7 +43,8 @@ func TestPubKkeyFormat_Decode(t *testing.T) { pubkey, err := format.Decode(ctx, data) require.NoError(t, err) - require.True(t, signer.GetPublicKey().Equal(pubkey.(ed25519.PublicKey))) + p := pubkey.(ed25519.PublicKey) + require.True(t, signer.GetPublicKey().Equal(p)) _, err = format.Decode(ctx, []byte(`{"Data":[]}`)) require.EqualError(t, err, diff --git a/dkg/pedersen/controller/action_test.go b/dkg/pedersen/controller/action_test.go index 017979978..eadf3da51 100644 --- a/dkg/pedersen/controller/action_test.go +++ b/dkg/pedersen/controller/action_test.go @@ -452,7 +452,8 @@ func TestDecryptAction_decodeFail(t *testing.T) { } func TestDecryptAction_decryptFail(t *testing.T) { - encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23:ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9" + encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23" + + ":ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9" a := decryptAction{} inj := node.NewInjector() @@ -474,7 +475,8 @@ func TestDecryptAction_decryptFail(t *testing.T) { } func TestDecryptAction_OK(t *testing.T) { - encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23:ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9" + encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23" + + ":ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9" message := "fake" expected := hex.EncodeToString([]byte(message)) @@ -545,8 +547,9 @@ func TestReencryptAction_decodePubkFail(t *testing.T) { inj.Inject(fakeActor{}) flags := node.FlagSet{ - "encrypted": "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23:ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9", - "pubk": "not hex", + "encrypted": "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23" + + ":ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9", + "pubk": "not hex", } ctx := node.Context{ @@ -559,7 +562,8 @@ func TestReencryptAction_decodePubkFail(t *testing.T) { } func TestReencryptAction_reencryptFail(t *testing.T) { - encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23" + + ":aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" pubk := "ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9" a := reencryptAction{} @@ -584,7 +588,8 @@ func TestReencryptAction_reencryptFail(t *testing.T) { } func TestReencryptAction_OK(t *testing.T) { - encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + encrypted := "abea449f0ab86029c529f541cdd7f48aee3102b9c1ea2999b5d39c2cc49a4c23" + + ":aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" pubk := "ae29dd65cb4ceaaf7830008b9544625a05b6dbbcd421cf8475aedbef8e8d1da9" sk := suite.Scalar().Pick(suite.RandomStream()) diff --git a/dkg/pedersen/dkg.go b/dkg/pedersen/dkg.go index d528f37c7..b78188bc6 100644 --- a/dkg/pedersen/dkg.go +++ b/dkg/pedersen/dkg.go @@ -677,6 +677,9 @@ func (s *instance) doReshare( s.startRes.init(start.GetAddrsNew(), start.GetPubkeysNew(), start.GetTNew()) expectedResponses = (start.GetTNew() - 1) * start.GetTOld() + + default: + return xerrors.New("unknown node type") } // All nodes should certify. diff --git a/dkg/pedersen/pedersen_test.go b/dkg/pedersen/pedersen_test.go index f4931a47a..46c00a3d9 100644 --- a/dkg/pedersen/pedersen_test.go +++ b/dkg/pedersen/pedersen_test.go @@ -497,7 +497,8 @@ func decryptReencrypted( XhatEnc kyber.Point, dkgPk kyber.Point, Sk kyber.Scalar, -) (msg []byte, err error) { +) ([]byte, error) { + var msg []byte dela.Logger.Debug().Msgf("XhatEnc:%v", XhatEnc) dela.Logger.Debug().Msgf("DKG pubK:%v", dkgPk) @@ -535,5 +536,6 @@ func decryptReencrypted( } msg = append(msg, keyPart...) } - return + + return msg, nil } diff --git a/go.mod b/go.mod index 3f9a23490..7fb6e1969 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/opentracing/opentracing-go v1.2.0 github.com/prometheus/client_golang v1.20.5 github.com/rs/xid v1.5.0 - github.com/rs/zerolog v1.32.0 + github.com/rs/zerolog v1.33.0 github.com/stretchr/testify v1.10.0 github.com/uber/jaeger-client-go v2.30.0+incompatible github.com/urfave/cli/v2 v2.27.1 @@ -18,7 +18,7 @@ require ( go.dedis.ch/kyber/v3 v3.1.0 go.etcd.io/bbolt v1.3.9 golang.org/x/crypto v0.31.0 - golang.org/x/net v0.32.0 + golang.org/x/net v0.33.0 golang.org/x/tools v0.28.0 golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 google.golang.org/grpc v1.70.0 @@ -66,7 +66,7 @@ require ( github.com/libp2p/go-netroute v0.2.2 // indirect github.com/libp2p/go-reuseport v0.4.0 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/miekg/dns v1.1.62 // indirect github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect @@ -106,7 +106,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.61.0 // indirect + github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/quic-go/qpack v0.5.1 // indirect github.com/quic-go/quic-go v0.48.2 // indirect @@ -130,7 +130,7 @@ require ( golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/sync v0.10.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.30.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.6.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 4a6e99747..69a2c5dc6 100644 --- a/go.sum +++ b/go.sum @@ -173,8 +173,9 @@ github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= @@ -295,8 +296,8 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= -github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= @@ -312,8 +313,8 @@ github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= -github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -493,8 +494,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= -golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -541,8 +542,8 @@ golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= diff --git a/internal/traffic/mod.go b/internal/traffic/mod.go index a437d8b7e..3b60aed98 100644 --- a/internal/traffic/mod.go +++ b/internal/traffic/mod.go @@ -307,7 +307,8 @@ func GenerateItemsGraphviz(out io.Writer, withSend, withRcv bool, traffics ...*T fmt.Fprintf(out, "digraph network_activity {\n") fmt.Fprintf(out, "labelloc=\"t\";") - fmt.Fprintf(out, "label =
(generated %s)>;", len(traffics), time.Now().Format("2 Jan 06 - 15:04:05")) + fmt.Fprintf(out, "label =
"+ + "(generated %s)>;", len(traffics), time.Now().Format("2 Jan 06 - 15:04:05")) fmt.Fprintf(out, "graph [fontname = \"helvetica\"];") fmt.Fprintf(out, "graph [fontname = \"helvetica\"];") fmt.Fprintf(out, "node [fontname = \"helvetica\"];") @@ -343,7 +344,8 @@ func GenerateItemsGraphviz(out io.Writer, withSend, withRcv bool, traffics ...*T } fmt.Fprintf(out, "\"%v\" -> \"%v\" "+ - "[ label = < %d (%d)
%s> color=\"%s\" ];\n", + "[ label = < %d "+ + "(%d)
%s> color=\"%s\" ];\n", item.src, item.gateway, item.typeCounter, item.globalCounter, msgStr, color) } } @@ -357,7 +359,9 @@ func GenerateEventGraphviz(out io.Writer, traffics ...*Traffic) { fmt.Fprintf(out, "digraph network_activity {\n") fmt.Fprintf(out, "labelloc=\"t\";") - fmt.Fprintf(out, "label =
(generated %s)>;", len(traffics), time.Now().Format("2 Jan 06 - 15:04:05")) + fmt.Fprintf(out, + "label =
(generated %s)>;", + len(traffics), time.Now().Format("2 Jan 06 - 15:04:05")) fmt.Fprintf(out, "graph [fontname = \"helvetica\"];") fmt.Fprintf(out, "graph [fontname = \"helvetica\"];") fmt.Fprintf(out, "node [fontname = \"helvetica\"];") diff --git a/internal/traffic/mod_test.go b/internal/traffic/mod_test.go index ac1ba7b1d..1963382cc 100644 --- a/internal/traffic/mod_test.go +++ b/internal/traffic/mod_test.go @@ -16,6 +16,8 @@ import ( "google.golang.org/grpc/metadata" ) +const Windows = "windows" + func TestTraffic_Integration(t *testing.T) { src := fake.NewAddress(0) a2 := fake.NewAddress(1) @@ -68,7 +70,7 @@ func TestSaveItems(t *testing.T) { defer os.RemoveAll(path) - if runtime.GOOS == "windows" { + if runtime.GOOS == Windows { return } diff --git a/mino/mino_test.go b/mino/mino_test.go index ea6c0754f..fd98f4f2a 100644 --- a/mino/mino_test.go +++ b/mino/mino_test.go @@ -28,6 +28,7 @@ func TestMustCreateRPC(t *testing.T) { func TestMustCreateRPC_Panic(t *testing.T) { defer func() { err := recover().(error) + require.NotNil(t, err) require.EqualError(t, err, "rpc_error") }() @@ -47,6 +48,6 @@ type fakeMino struct { err error } -func (m fakeMino) CreateRPC(name string, h Handler, f serde.Factory) (RPC, error) { +func (m fakeMino) CreateRPC(_ string, _ Handler, _ serde.Factory) (RPC, error) { return fakeRPC{}, m.err } diff --git a/mino/minogrpc/server.go b/mino/minogrpc/server.go index 7a91de7b7..cffeb61ea 100644 --- a/mino/minogrpc/server.go +++ b/mino/minogrpc/server.go @@ -687,6 +687,8 @@ func (mgr *connManager) Acquire(to mino.Address) (grpc.ClientConnInterface, erro opts = append(opts, grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{}))) case mino.ACTgRPC: opts = append(opts, grpc.WithTransportCredentials(insecure.NewCredentials())) + default: + return nil, xerrors.Errorf("unsupported connection type '%v'", to.ConnectionType()) } conn, err = grpc.NewClient( diff --git a/mino/minogrpc/session/addr.go b/mino/minogrpc/session/addr.go index 4b183f61f..c3470c99e 100644 --- a/mino/minogrpc/session/addr.go +++ b/mino/minogrpc/session/addr.go @@ -61,10 +61,12 @@ func NewAddress(host string) Address { } // NewAddressFromURL creates a new address given a URL. -func NewAddressFromURL(addr url.URL) (a Address, err error) { +func NewAddressFromURL(addr url.URL) (Address, error) { + var a Address + a.host = addr.Host + if addr.Port() == "" { - err = xerrors.Errorf("no port given or not able to infer it from protocol") - return + return a, xerrors.Errorf("no port given or not able to infer it from protocol") } scheme := addr.Scheme @@ -81,12 +83,12 @@ func NewAddressFromURL(addr url.URL) (a Address, err error) { case "https": a.connectionType = mino.ACThttps default: - err = xerrors.Errorf("unknown scheme '%s' in address", addr.Scheme) - return + return a, xerrors.Errorf("unknown scheme '%s' in address", addr.Scheme) } a.host = addr.Host - return + + return a, nil } // GetDialAddress returns a string formatted to be understood by grpc.Dial() @@ -149,6 +151,10 @@ func (a Address) String() string { url = "grpc://" + a.host case mino.ACThttps: url = "https://" + a.host + case mino.ACTws: + url = "ws://" + a.host + default: + url = "unknown://" + a.host } if a.orchestrator { return "Orchestrator:" + url diff --git a/mino/minogrpc/session/mod.go b/mino/minogrpc/session/mod.go index f6927688b..118d42876 100644 --- a/mino/minogrpc/session/mod.go +++ b/mino/minogrpc/session/mod.go @@ -189,7 +189,7 @@ func (s *session) Listen(relay Relay, table router.RoutingTable, ready chan stru for { _, err := relay.Stream().Recv() code := status.Code(err) - if err == io.EOF || code != codes.Unknown { + if errors.Is(err, io.EOF) || code != codes.Unknown { s.log.Trace().Stringer("code", code).Msg("session closing") return @@ -494,7 +494,7 @@ func (s *session) setupRelay(p parent, addr mino.Address) (Relay, error) { for { _, err := stream.Recv() code := status.Code(err) - if err == io.EOF || code != codes.Unknown { + if errors.Is(err, io.EOF) || code != codes.Unknown { s.log.Trace(). Stringer("code", code). Stringer("to", addr). diff --git a/mino/minogrpc/session/mod_test.go b/mino/minogrpc/session/mod_test.go index 4d354b1ff..f0666f779 100644 --- a/mino/minogrpc/session/mod_test.go +++ b/mino/minogrpc/session/mod_test.go @@ -25,17 +25,23 @@ func TestSessionNew(t *testing.T) { curr := os.Getenv(traffic.EnvVariable) defer os.Setenv(traffic.EnvVariable, curr) - os.Setenv(traffic.EnvVariable, "log") + t.Setenv(traffic.EnvVariable, "log") sess := NewSession(nil, fake.NewAddress(999), nil, nil, fake.NewContext(), nil) - require.NotNil(t, sess.(*session).traffic) + se, err := sess.(*session) + require.NotNil(t, err) + require.NotNil(t, se.traffic) - os.Setenv(traffic.EnvVariable, "print") + t.Setenv(traffic.EnvVariable, "print") sess = NewSession(nil, fake.NewAddress(999), nil, nil, fake.NewContext(), nil) - require.NotNil(t, sess.(*session).traffic) + se, err = sess.(*session) + require.NotNil(t, err) + require.NotNil(t, se.traffic) os.Unsetenv(traffic.EnvVariable) sess = NewSession(nil, fake.NewAddress(999), nil, nil, fake.NewContext(), nil) - require.Nil(t, sess.(*session).traffic) + se, err = sess.(*session) + require.NotNil(t, err) + require.Nil(t, se.traffic) } func TestSession_getNumParents(t *testing.T) { diff --git a/mino/proxy/http/mod_test.go b/mino/proxy/http/mod_test.go index 1f18e0e24..f733982e9 100644 --- a/mino/proxy/http/mod_test.go +++ b/mino/proxy/http/mod_test.go @@ -4,7 +4,6 @@ import ( "bytes" "io" "net/http" - "os" "testing" "time" @@ -13,15 +12,15 @@ import ( ) func TestInit(t *testing.T) { - os.Setenv("PROXY_LOG", "warn") + t.Setenv("PROXY_LOG", "warn") setLogLevel() require.Equal(t, defaultLevel, zerolog.WarnLevel) - os.Setenv("PROXY_LOG", "no") + t.Setenv("PROXY_LOG", "no") setLogLevel() require.Equal(t, defaultLevel, zerolog.Disabled) - os.Setenv("PROXY_LOG", "info") + t.Setenv("PROXY_LOG", "info") setLogLevel() require.Equal(t, defaultLevel, zerolog.InfoLevel) } @@ -37,6 +36,9 @@ func TestHTTP_Listen(t *testing.T) { res, err := http.Get("http://127.0.0.1:2010/fake") require.NoError(t, err) + require.NotNil(t, res) + defer res.Body.Close() + require.NoError(t, err) output, err := io.ReadAll(res.Body) require.NoError(t, err) @@ -48,7 +50,6 @@ func TestHTPP_Listen_EmptyAddr(t *testing.T) { // in this case it will use a random free port proxy := NewHTTP("") httpProxy := proxy.(*HTTP) - require.Nil(t, httpProxy.ln) go proxy.Listen() diff --git a/mino/router/tree/tree.go b/mino/router/tree/tree.go index db34ec681..91ee15032 100644 --- a/mino/router/tree/tree.go +++ b/mino/router/tree/tree.go @@ -139,7 +139,7 @@ func (t *dynTree) GetRoute(to mino.Address) (mino.Address, error) { return to, nil } - return nil, nil + return nil, nil // xerrors.Errorf("address is not routable") } // GetChildren implements tree.Tree. It returns the children of a branch. diff --git a/mod.go b/mod.go index 302e32a3e..b93616315 100644 --- a/mod.go +++ b/mod.go @@ -112,11 +112,13 @@ var Logger = zerolog.New(consoleOut).Level(defaultLevel). type promHook struct{} // Run implements zerolog.Hook -func (promHook) Run(e *zerolog.Event, level zerolog.Level, message string) { +func (promHook) Run(_ *zerolog.Event, level zerolog.Level, _ string) { switch level { case zerolog.WarnLevel: promWarns.Inc() case zerolog.ErrorLevel: promErrs.Inc() + default: + return } }