diff --git a/p2p/net/swarm/swarm.go b/p2p/net/swarm/swarm.go index de7a9350b6..e975548fe1 100644 --- a/p2p/net/swarm/swarm.go +++ b/p2p/net/swarm/swarm.go @@ -212,16 +212,6 @@ func (s *Swarm) addConn(tc transport.CapableConn, dir network.Direction) (*Conn, addr = tc.RemoteMultiaddr() ) - if s.gater != nil { - if allow := s.gater.InterceptAddrDial(p, addr); !allow { - err := tc.Close() - if err != nil { - log.Warnf("failed to close connection with peer %s and addr %s; err: %s", p.Pretty(), addr, err) - } - return nil, ErrAddrFiltered - } - } - // create the Stat object, initializing with the underlying connection Stat if available var stat network.Stat if cs, ok := tc.(network.ConnStat); ok { diff --git a/p2p/net/swarm/swarm_test.go b/p2p/net/swarm/swarm_test.go index 739afe9182..a94281b1f5 100644 --- a/p2p/net/swarm/swarm_test.go +++ b/p2p/net/swarm/swarm_test.go @@ -317,6 +317,15 @@ func TestConnectionGating(t *testing.T) { p2ConnectednessToP1: network.NotConnected, isP1OutboundErr: true, }, + "p2 accepts inbound peer dial if outgoing dial is gated": { + p2Gater: func(c *MockConnectionGater) *MockConnectionGater { + c.Dial = func(peer.ID, ma.Multiaddr) bool { return false } + return c + }, + p1ConnectednessToP2: network.Connected, + p2ConnectednessToP1: network.Connected, + isP1OutboundErr: false, + }, "p2 gates inbound peer dial before securing": { p2Gater: func(c *MockConnectionGater) *MockConnectionGater { c.Accept = func(c network.ConnMultiaddrs) bool { return false }