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,
}
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 {
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,
......
package dht
import (
"bytes"
"testing"
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 {
func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT) {
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))
if err != nil {
t.Fatal(err)
......@@ -53,13 +54,13 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT)
}
var peers []*peer.Peer
for i := 0; i < 4; i++ {
for i := 0; i < n; i++ {
p := makePeer(addrs[i])
peers = append(peers, p)
}
var dhts []*IpfsDHT
for i := 0; i < 4; i++ {
dhts := make([]*IpfsDHT, n)
for i := 0; i < n; i++ {
dhts[i] = setupDHT(t, peers[i])
}
......
......@@ -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)
if result.value == nil {
return nil, u.ErrNotFound
}
......@@ -111,6 +110,8 @@ func (dht *IpfsDHT) Provide(key u.Key) error {
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 {
err := dht.putProvider(ctx, p, string(key))
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