mirror of https://github.com/libp2p/go-libp2p.git
Marten Seemann
3 years ago
2 changed files with 0 additions and 171 deletions
@ -1,116 +0,0 @@ |
|||||
package libp2p |
|
||||
|
|
||||
import ( |
|
||||
"context" |
|
||||
"net" |
|
||||
"testing" |
|
||||
"time" |
|
||||
|
|
||||
"github.com/libp2p/go-libp2p-core/peer" |
|
||||
"github.com/libp2p/go-libp2p-core/test" |
|
||||
|
|
||||
ma "github.com/multiformats/go-multiaddr" |
|
||||
manet "github.com/multiformats/go-multiaddr/net" |
|
||||
"github.com/stretchr/testify/require" |
|
||||
) |
|
||||
|
|
||||
func TestDeprecatedFiltersOptionsOutbound(t *testing.T) { |
|
||||
require := require.New(t) |
|
||||
|
|
||||
f := ma.NewFilters() |
|
||||
_, ipnet, _ := net.ParseCIDR("127.0.0.0/24") |
|
||||
f.AddFilter(*ipnet, ma.ActionDeny) |
|
||||
|
|
||||
host0, err := New(context.TODO(), Filters(f)) |
|
||||
require.NoError(err) |
|
||||
require.NotNil(host0) |
|
||||
|
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) |
|
||||
defer cancel() |
|
||||
|
|
||||
id, _ := test.RandPeerID() |
|
||||
addr, _ := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/0/p2p/" + id.Pretty()) |
|
||||
ai, _ := peer.AddrInfoFromP2pAddr(addr) |
|
||||
|
|
||||
err = host0.Connect(ctx, *ai) |
|
||||
require.Error(err) |
|
||||
require.Contains(err.Error(), "no good addresses") |
|
||||
} |
|
||||
|
|
||||
var ( |
|
||||
ip4FullMask = net.IPMask{255, 255, 255, 255} |
|
||||
ip6FullMask = net.IPMask{255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255} |
|
||||
) |
|
||||
|
|
||||
func TestDeprecatedFiltersOptionsInbound(t *testing.T) { |
|
||||
require := require.New(t) |
|
||||
|
|
||||
host0, err := New(context.TODO()) |
|
||||
require.NoError(err) |
|
||||
require.NotNil(host0) |
|
||||
|
|
||||
f := ma.NewFilters() |
|
||||
for _, addr := range host0.Addrs() { |
|
||||
ip, err := manet.ToIP(addr) |
|
||||
require.NoError(err) |
|
||||
require.NotNil(t, ip) |
|
||||
|
|
||||
var mask net.IPMask |
|
||||
if ip.To4() != nil { |
|
||||
mask = ip4FullMask |
|
||||
} else { |
|
||||
mask = ip6FullMask |
|
||||
} |
|
||||
|
|
||||
ipnet := net.IPNet{IP: ip, Mask: mask} |
|
||||
f.AddFilter(ipnet, ma.ActionDeny) |
|
||||
} |
|
||||
host1, err := New(context.TODO(), Filters(f)) |
|
||||
require.NoError(err) |
|
||||
require.NotNil(host1) |
|
||||
|
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) |
|
||||
defer cancel() |
|
||||
|
|
||||
peerInfo := peer.AddrInfo{ |
|
||||
ID: host1.ID(), |
|
||||
Addrs: host1.Addrs(), |
|
||||
} |
|
||||
err = host0.Connect(ctx, peerInfo) |
|
||||
require.Error(err) |
|
||||
} |
|
||||
|
|
||||
func TestDeprecatedFiltersAndAddressesOptions(t *testing.T) { |
|
||||
require := require.New(t) |
|
||||
|
|
||||
f := ma.NewFilters() |
|
||||
_, ipnet1, _ := net.ParseCIDR("127.0.0.0/24") |
|
||||
_, ipnet2, _ := net.ParseCIDR("128.0.0.0/24") |
|
||||
f.AddFilter(*ipnet1, ma.ActionDeny) |
|
||||
|
|
||||
host, err := New(context.TODO(), Filters(f), FilterAddresses(ipnet2)) |
|
||||
require.NoError(err) |
|
||||
require.NotNil(host) |
|
||||
|
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) |
|
||||
defer cancel() |
|
||||
|
|
||||
id, _ := test.RandPeerID() |
|
||||
addr1, _ := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/0/p2p/" + id.Pretty()) |
|
||||
addr2, _ := ma.NewMultiaddr("/ip4/128.0.0.1/tcp/0/p2p/" + id.Pretty()) |
|
||||
ai, _ := peer.AddrInfosFromP2pAddrs(addr1, addr2) |
|
||||
|
|
||||
err = host.Connect(ctx, ai[0]) |
|
||||
require.Error(err) |
|
||||
require.Contains(err.Error(), "no good addresses") |
|
||||
} |
|
||||
|
|
||||
func TestCannotSetFiltersAndConnGater(t *testing.T) { |
|
||||
require := require.New(t) |
|
||||
|
|
||||
f := ma.NewFilters() |
|
||||
|
|
||||
_, err := New(context.TODO(), Filters(f), ConnectionGater(nil)) |
|
||||
require.Error(err) |
|
||||
require.Contains(err.Error(), "cannot configure multiple connection gaters") |
|
||||
} |
|
Loading…
Reference in new issue