提交 a5d54ea2 作者: Jeromy

fix up tests that started failing after changing identify code

上级 c85dd281
...@@ -93,7 +93,7 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) { ...@@ -93,7 +93,7 @@ func NewIpfsNode(cfg *config.Config, online bool) (*IpfsNode, error) {
} }
func loadBitswap(cfg *config.Config, d ds.Datastore) (*bitswap.BitSwap, error) { func loadBitswap(cfg *config.Config, d ds.Datastore) (*bitswap.BitSwap, error) {
maddr, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/4001") maddr, err := ma.NewMultiaddr(cfg.Identity.Address)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -43,7 +43,7 @@ func Handshake(self, remote *peer.Peer, in, out chan []byte) error { ...@@ -43,7 +43,7 @@ func Handshake(self, remote *peer.Peer, in, out chan []byte) error {
} }
// Challenge peer to ensure they own the given pubkey // Challenge peer to ensure they own the given pubkey
secret := make([]byte, 32) secret := make([]byte, 16)
rand.Read(secret) rand.Read(secret)
encrypted, err := rsa.EncryptPKCS1v15(rand.Reader, pubkey.(*rsa.PublicKey), secret) encrypted, err := rsa.EncryptPKCS1v15(rand.Reader, pubkey.(*rsa.PublicKey), secret)
if err != nil { if err != nil {
...@@ -66,7 +66,7 @@ func Handshake(self, remote *peer.Peer, in, out chan []byte) error { ...@@ -66,7 +66,7 @@ func Handshake(self, remote *peer.Peer, in, out chan []byte) error {
return errors.New("Recieved incorrect challenge response!") return errors.New("Recieved incorrect challenge response!")
} }
remote.ID = peer.ID(resp) remote.ID = peer.ID(pbresp.GetId())
remote.PubKey = pubkey remote.PubKey = pubkey
u.DOut("[%s] identify: Got node id: %s\n", self.ID.Pretty(), remote.ID.Pretty()) u.DOut("[%s] identify: Got node id: %s\n", self.ID.Pretty(), remote.ID.Pretty())
......
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"testing" "testing"
ds "github.com/jbenet/datastore.go" ds "github.com/jbenet/datastore.go"
identify "github.com/jbenet/go-ipfs/identify"
peer "github.com/jbenet/go-ipfs/peer" peer "github.com/jbenet/go-ipfs/peer"
swarm "github.com/jbenet/go-ipfs/swarm" swarm "github.com/jbenet/go-ipfs/swarm"
u "github.com/jbenet/go-ipfs/util" u "github.com/jbenet/go-ipfs/util"
...@@ -27,7 +28,17 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT) ...@@ -27,7 +28,17 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT)
for i := 0; i < 4; i++ { for i := 0; i < 4; i++ {
p := new(peer.Peer) p := new(peer.Peer)
p.AddAddress(addrs[i]) p.AddAddress(addrs[i])
p.ID = peer.ID([]byte(fmt.Sprintf("peer_%d", i))) kp, err := identify.GenKeypair(256)
if err != nil {
panic(err)
}
p.PubKey = kp.Pub
p.PrivKey = kp.Priv
id, err := kp.ID()
if err != nil {
panic(err)
}
p.ID = id
peers = append(peers, p) peers = append(peers, p)
} }
...@@ -46,8 +57,26 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT) ...@@ -46,8 +57,26 @@ func setupDHTS(n int, t *testing.T) ([]*ma.Multiaddr, []*peer.Peer, []*IpfsDHT)
return addrs, peers, dhts return addrs, peers, dhts
} }
func makePeer(addr *ma.Multiaddr) *peer.Peer {
p := new(peer.Peer)
p.AddAddress(addr)
kp, err := identify.GenKeypair(256)
if err != nil {
panic(err)
}
p.PrivKey = kp.Priv
p.PubKey = kp.Pub
id, err := kp.ID()
if err != nil {
panic(err)
}
p.ID = id
return p
}
func TestPing(t *testing.T) { func TestPing(t *testing.T) {
u.Debug = false u.Debug = true
addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/2222") addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/2222")
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
...@@ -57,13 +86,8 @@ func TestPing(t *testing.T) { ...@@ -57,13 +86,8 @@ func TestPing(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
peerA := new(peer.Peer) peerA := makePeer(addrA)
peerA.AddAddress(addrA) peerB := makePeer(addrB)
peerA.ID = peer.ID([]byte("peerA"))
peerB := new(peer.Peer)
peerB.AddAddress(addrB)
peerB.ID = peer.ID([]byte("peerB"))
neta := swarm.NewSwarm(peerA) neta := swarm.NewSwarm(peerA)
err = neta.Listen() err = neta.Listen()
...@@ -108,13 +132,8 @@ func TestValueGetSet(t *testing.T) { ...@@ -108,13 +132,8 @@ func TestValueGetSet(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
peerA := new(peer.Peer) peerA := makePeer(addrA)
peerA.AddAddress(addrA) peerB := makePeer(addrB)
peerA.ID = peer.ID([]byte("peerA"))
peerB := new(peer.Peer)
peerB.AddAddress(addrB)
peerB.ID = peer.ID([]byte("peerB"))
neta := swarm.NewSwarm(peerA) neta := swarm.NewSwarm(peerA)
err = neta.Listen() err = neta.Listen()
......
...@@ -315,8 +315,9 @@ func (dht *IpfsDHT) FindPeer(id peer.ID, timeout time.Duration) (*peer.Peer, err ...@@ -315,8 +315,9 @@ func (dht *IpfsDHT) FindPeer(id peer.ID, timeout time.Duration) (*peer.Peer, err
for routeLevel < len(dht.routingTables) { for routeLevel < len(dht.routingTables) {
pmes, err := dht.findPeerSingle(p, id, timeout, routeLevel) pmes, err := dht.findPeerSingle(p, id, timeout, routeLevel)
plist := pmes.GetPeers() plist := pmes.GetPeers()
if len(plist) == 0 { if plist == nil || len(plist) == 0 {
routeLevel++ routeLevel++
continue
} }
found := plist[0] found := plist[0]
......
...@@ -184,10 +184,15 @@ func (s *Swarm) handleNewConn(nconn net.Conn) { ...@@ -184,10 +184,15 @@ func (s *Swarm) handleNewConn(nconn net.Conn) {
maddr, err := ma.NewMultiaddr(string(addr)) maddr, err := ma.NewMultiaddr(string(addr))
if err != nil { if err != nil {
u.PErr("Got invalid address from peer.") u.PErr("Got invalid address from peer.")
s.Error(err)
return
} }
p.AddAddress(maddr) p.AddAddress(maddr)
s.StartConn(conn) err = s.StartConn(conn)
if err != nil {
s.Error(err)
}
} }
// Close closes a swarm. // Close closes a swarm.
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论