mirror of
https://github.com/fluencelabs/go-libp2p-kad-dht
synced 2025-04-25 06:42:13 +00:00
refactor(dht) remove extraneous return value
License: MIT Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
This commit is contained in:
parent
5e61ef67ac
commit
2c1700b45d
17
dht.go
17
dht.go
@ -97,32 +97,23 @@ func NewDHT(ctx context.Context, p peer.Peer, ps peer.Peerstore, dialer inet.Dia
|
||||
}
|
||||
|
||||
// Connect to a new peer at the given address, ping and add to the routing table
|
||||
func (dht *IpfsDHT) Connect(ctx context.Context, npeer peer.Peer) (peer.Peer, error) {
|
||||
// TODO(jbenet,whyrusleeping)
|
||||
//
|
||||
// Connect should take in a Peer (with ID). In a sense, we shouldn't be
|
||||
// allowing connections to random multiaddrs without knowing who we're
|
||||
// speaking to (i.e. peer.ID). In terms of moving around simple addresses
|
||||
// -- instead of an (ID, Addr) pair -- we can use:
|
||||
//
|
||||
// /ip4/10.20.30.40/tcp/1234/ipfs/Qxhxxchxzcncxnzcnxzcxzm
|
||||
//
|
||||
func (dht *IpfsDHT) Connect(ctx context.Context, npeer peer.Peer) error {
|
||||
err := dht.dialer.DialPeer(ctx, npeer)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
|
||||
// Ping new peer to register in their routing table
|
||||
// NOTE: this should be done better...
|
||||
err = dht.Ping(ctx, npeer)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to ping newly connected peer: %s\n", err)
|
||||
return fmt.Errorf("failed to ping newly connected peer: %s\n", err)
|
||||
}
|
||||
log.Event(ctx, "connect", dht.self, npeer)
|
||||
|
||||
dht.Update(ctx, npeer)
|
||||
|
||||
return npeer, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
// HandleMessage implements the inet.Handler interface.
|
||||
|
32
dht_test.go
32
dht_test.go
@ -101,7 +101,7 @@ func TestPing(t *testing.T) {
|
||||
defer dhtA.dialer.(inet.Network).Close()
|
||||
defer dhtB.dialer.(inet.Network).Close()
|
||||
|
||||
_, err = dhtA.Connect(ctx, peerB)
|
||||
err = dhtA.Connect(ctx, peerB)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -151,7 +151,7 @@ func TestValueGetSet(t *testing.T) {
|
||||
defer dhtA.dialer.(inet.Network).Close()
|
||||
defer dhtB.dialer.(inet.Network).Close()
|
||||
|
||||
_, err = dhtA.Connect(ctx, peerB)
|
||||
err = dhtA.Connect(ctx, peerB)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -194,17 +194,17 @@ func TestProvides(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
_, err := dhts[0].Connect(ctx, peers[1])
|
||||
err := dhts[0].Connect(ctx, peers[1])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[2])
|
||||
err = dhts[1].Connect(ctx, peers[2])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[3])
|
||||
err = dhts[1].Connect(ctx, peers[3])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -256,17 +256,17 @@ func TestProvidesAsync(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
_, err := dhts[0].Connect(ctx, peers[1])
|
||||
err := dhts[0].Connect(ctx, peers[1])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[2])
|
||||
err = dhts[1].Connect(ctx, peers[2])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[3])
|
||||
err = dhts[1].Connect(ctx, peers[3])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -321,17 +321,17 @@ func TestLayeredGet(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
_, err := dhts[0].Connect(ctx, peers[1])
|
||||
err := dhts[0].Connect(ctx, peers[1])
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to connect: %s", err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[2])
|
||||
err = dhts[1].Connect(ctx, peers[2])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[3])
|
||||
err = dhts[1].Connect(ctx, peers[3])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -376,17 +376,17 @@ func TestFindPeer(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
_, err := dhts[0].Connect(ctx, peers[1])
|
||||
err := dhts[0].Connect(ctx, peers[1])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[2])
|
||||
err = dhts[1].Connect(ctx, peers[2])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = dhts[1].Connect(ctx, peers[3])
|
||||
err = dhts[1].Connect(ctx, peers[3])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -435,14 +435,14 @@ func TestConnectCollision(t *testing.T) {
|
||||
|
||||
done := make(chan struct{})
|
||||
go func() {
|
||||
_, err := dhtA.Connect(ctx, peerB)
|
||||
err := dhtA.Connect(ctx, peerB)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
done <- struct{}{}
|
||||
}()
|
||||
go func() {
|
||||
_, err := dhtB.Connect(ctx, peerA)
|
||||
err := dhtB.Connect(ctx, peerA)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user