diff --git a/p2p/host/basic/basic_host.go b/p2p/host/basic/basic_host.go index a2bd21ed903e74a58eaa4738db8f08710e610419..d57cd13b43db75d6d55b27c7f1ce86f66a1f5447 100644 --- a/p2p/host/basic/basic_host.go +++ b/p2p/host/basic/basic_host.go @@ -115,6 +115,7 @@ type HostOpts struct { // NewHost constructs a new *BasicHost and activates it by attaching its stream and connection handlers to the given inet.Network. func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, error) { + ctx, cancel := context.WithCancel(ctx) h := &BasicHost{ network: net, mux: msmux.NewMultistreamMuxer(), @@ -123,6 +124,14 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, maResolver: madns.DefaultResolver, } + h.proc = goprocess.WithTeardown(func() error { + if h.natmgr != nil { + h.natmgr.Close() + } + cancel() + return h.Network().Close() + }) + if opts.MultistreamMuxer != nil { h.mux = opts.MultistreamMuxer } @@ -162,25 +171,11 @@ func NewHost(ctx context.Context, net inet.Network, opts *HostOpts) (*BasicHost, net.Notify(h.cmgr.Notifee()) } - var relayCtx context.Context - var relayCancel func() - - h.proc = goprocess.WithTeardown(func() error { - if h.natmgr != nil { - h.natmgr.Close() - } - if relayCancel != nil { - relayCancel() - } - return h.Network().Close() - }) - net.SetConnHandler(h.newConnHandler) net.SetStreamHandler(h.newStreamHandler) if opts.EnableRelay { - relayCtx, relayCancel = context.WithCancel(ctx) - err := circuit.AddRelayTransport(relayCtx, h, opts.RelayOpts...) + err := circuit.AddRelayTransport(ctx, h, opts.RelayOpts...) if err != nil { h.Close() return nil, err diff --git a/p2p/host/basic/basic_host_test.go b/p2p/host/basic/basic_host_test.go index 4c14934507ef557f8d8a982acf62ff12077973cf..7cf8136e62070b53cc532ac49e18dcf94f4eb734 100644 --- a/p2p/host/basic/basic_host_test.go +++ b/p2p/host/basic/basic_host_test.go @@ -54,7 +54,7 @@ func TestHostSimple(t *testing.T) { t.Fatal(err) } if !bytes.Equal(buf1, buf2) { - t.Fatal("buf1 != buf2 -- %x != %x", buf1, buf2) + t.Fatalf("buf1 != buf2 -- %x != %x", buf1, buf2) } // get it from the pipe (tee) @@ -63,7 +63,7 @@ func TestHostSimple(t *testing.T) { t.Fatal(err) } if !bytes.Equal(buf1, buf3) { - t.Fatal("buf1 != buf3 -- %x != %x", buf1, buf3) + t.Fatalf("buf1 != buf3 -- %x != %x", buf1, buf3) } } diff --git a/p2p/net/mock/mock_peernet.go b/p2p/net/mock/mock_peernet.go index 26d5a3bdc971241ff6f789ac6e3e79831ea1a631..42361ac34aff8eb304abd5a125e6a23fb4b0ecde 100644 --- a/p2p/net/mock/mock_peernet.go +++ b/p2p/net/mock/mock_peernet.go @@ -205,7 +205,7 @@ func (pn *peernet) removeConn(c *conn) { cs, found = pn.connsByPeer[c.remote] if !found { - panic(fmt.Sprintf("attempting to remove a conn that doesnt exist %p", c.remote)) + panic(fmt.Sprintf("attempting to remove a conn that doesnt exist %v", c.remote)) } delete(cs, c) } diff --git a/p2p/net/mock/mock_test.go b/p2p/net/mock/mock_test.go index 6f6b20cc57dcfd09f94baa9f5d611a924ad3e16b..5c6c2cb8b33215e049a0b7029686bb255c63acbb 100644 --- a/p2p/net/mock/mock_test.go +++ b/p2p/net/mock/mock_test.go @@ -166,7 +166,7 @@ func TestNetworkSetup(t *testing.T) { links12 = mn.LinksBetweenPeers(p1, p2) if len(links12) != 0 { - t.Errorf("should be 0 now...", len(links12)) + t.Error("should be 0 now...", len(links12)) } links11 = mn.LinksBetweenPeers(p1, p1) @@ -190,7 +190,7 @@ func TestNetworkSetup(t *testing.T) { // first, no conns if len(n2.Conns()) > 0 || len(n3.Conns()) > 0 { - t.Error("should have 0 conn. Got: (%d, %d)", len(n2.Conns()), len(n3.Conns())) + t.Errorf("should have 0 conn. Got: (%d, %d)", len(n2.Conns()), len(n3.Conns())) } // connect p2->p3 diff --git a/p2p/test/backpressure/backpressure_test.go b/p2p/test/backpressure/backpressure_test.go index 163c7051284f5e11f372575f3e96868a61478d40..8e783118db3d2d9e535b470d584507ec102f5679 100644 --- a/p2p/test/backpressure/backpressure_test.go +++ b/p2p/test/backpressure/backpressure_test.go @@ -146,7 +146,7 @@ a problem. h2pi := h2.Peerstore().PeerInfo(h2.ID()) log.Debugf("dialing %s", h2pi.Addrs) if err := h1.Connect(ctx, h2pi); err != nil { - t.Fatalf("Failed to connect:", err) + t.Fatal("Failed to connect:", err) } // launch sender! @@ -266,7 +266,7 @@ func TestStBackpressureStreamWrite(t *testing.T) { t.Error("read failed:", err) } if expect != n { - t.Error("read len differs: %d != %d", expect, n) + t.Errorf("read len differs: %d != %d", expect, n) } } @@ -283,7 +283,7 @@ func TestStBackpressureStreamWrite(t *testing.T) { h2pi := h2.Peerstore().PeerInfo(h2.ID()) log.Debugf("dialing %s", h2pi.Addrs) if err := h1.Connect(ctx, h2pi); err != nil { - t.Fatalf("Failed to connect:", err) + t.Fatal("Failed to connect:", err) } // open a stream, from 2->1, this is our reader diff --git a/p2p/test/reconnects/reconnect_test.go b/p2p/test/reconnects/reconnect_test.go index 55b7b1ce1e9b35f5a5a328aa28452b37926ba889..e8851efe8c1b0650a89e8924bc008d134f7f5ab3 100644 --- a/p2p/test/reconnects/reconnect_test.go +++ b/p2p/test/reconnects/reconnect_test.go @@ -174,7 +174,7 @@ func SubtestConnSendDisc(t *testing.T, hosts []host.Host) { h2pi := h2.Peerstore().PeerInfo(h2.ID()) log.Debugf("dialing %s", h2pi.Addrs) if err := h1.Connect(ctx, h2pi); err != nil { - t.Fatalf("Failed to connect:", err) + t.Fatal("Failed to connect:", err) } } }