Commit 9215b454 authored by Juan Batiz-Benet's avatar Juan Batiz-Benet Committed by Brian Tiger Chow

provider testing

parent 2e150db8
...@@ -208,13 +208,18 @@ func (dht *IpfsDHT) putValueToNetwork(ctx context.Context, p *peer.Peer, ...@@ -208,13 +208,18 @@ func (dht *IpfsDHT) putValueToNetwork(ctx context.Context, p *peer.Peer,
} }
func (dht *IpfsDHT) putProvider(ctx context.Context, p *peer.Peer, key string) error { func (dht *IpfsDHT) putProvider(ctx context.Context, p *peer.Peer, key string) error {
pmes := newMessage(Message_ADD_PROVIDER, string(key), 0)
mes, err := msg.FromObject(p, pmes) pmes := newMessage(Message_ADD_PROVIDER, string(key), 0)
rpmes, err := dht.sendRequest(ctx, p, pmes)
if err != nil { if err != nil {
return err return err
} }
return dht.sender.SendMessage(ctx, mes)
if *rpmes.Key != *pmes.Key {
return errors.New("provider not added correctly")
}
return nil
} }
func (dht *IpfsDHT) getValueOrPeers(ctx context.Context, p *peer.Peer, func (dht *IpfsDHT) getValueOrPeers(ctx context.Context, p *peer.Peer,
......
package dht package dht
import ( import (
"bytes"
"testing" "testing"
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
...@@ -44,7 +45,7 @@ func setupDHT(t *testing.T, p *peer.Peer) *IpfsDHT { ...@@ -44,7 +45,7 @@ func setupDHT(t *testing.T, p *peer.Peer) *IpfsDHT {
func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT) { func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT) {
var addrs []*ma.Multiaddr var addrs []*ma.Multiaddr
for i := 0; i < 4; i++ { for i := 0; i < n; i++ {
a, err := ma.NewMultiaddr(fmt.Sprintf("/ip4/127.0.0.1/tcp/%d", 5000+i)) a, err := ma.NewMultiaddr(fmt.Sprintf("/ip4/127.0.0.1/tcp/%d", 5000+i))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
...@@ -53,13 +54,13 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT) ...@@ -53,13 +54,13 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT)
} }
var peers []*peer.Peer var peers []*peer.Peer
for i := 0; i < 4; i++ { for i := 0; i < n; i++ {
p := makePeer(addrs[i]) p := makePeer(addrs[i])
peers = append(peers, p) peers = append(peers, p)
} }
var dhts []*IpfsDHT dhts := make([]*IpfsDHT, n)
for i := 0; i < 4; i++ { for i := 0; i < n; i++ {
dhts[i] = setupDHT(t, peers[i]) dhts[i] = setupDHT(t, peers[i])
} }
......
...@@ -90,7 +90,6 @@ func (dht *IpfsDHT) GetValue(key u.Key, timeout time.Duration) ([]byte, error) { ...@@ -90,7 +90,6 @@ func (dht *IpfsDHT) GetValue(key u.Key, timeout time.Duration) ([]byte, error) {
} }
u.DOut("[%s] GetValue %v %v\n", dht.self.ID.Pretty(), key, result.value) u.DOut("[%s] GetValue %v %v\n", dht.self.ID.Pretty(), key, result.value)
if result.value == nil { if result.value == nil {
return nil, u.ErrNotFound return nil, u.ErrNotFound
} }
...@@ -111,6 +110,8 @@ func (dht *IpfsDHT) Provide(key u.Key) error { ...@@ -111,6 +110,8 @@ func (dht *IpfsDHT) Provide(key u.Key) error {
return kb.ErrLookupFailure return kb.ErrLookupFailure
} }
//TODO FIX: this doesn't work! it needs to be sent to the actual nearest peers.
// `peers` are the closest peers we have, not the ones that should get the value.
for _, p := range peers { for _, p := range peers {
err := dht.putProvider(ctx, p, string(key)) err := dht.putProvider(ctx, p, string(key))
if err != nil { if err != nil {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment