diff --git a/swarm.go b/swarm.go index de7a9350b6f289007055cbf47b90a90ac97e1a90..e975548fe1f8a3dd3399f806b4dd172b5da4f2ac 100644 --- a/swarm.go +++ b/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/swarm_test.go b/swarm_test.go index 739afe9182f6a84b618016aeffbeb9f1827ddc64..a94281b1f516e56b928e895c546f2e5fb39f4d6a 100644 --- a/swarm_test.go +++ b/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 }