Commit 3b2f4641 authored by vyzo's avatar vyzo
Browse files

RoutedHost: use Connect directly in NewStream

parent daaf97b4
......@@ -128,13 +128,12 @@ func (rh *RoutedHost) RemoveStreamHandler(pid protocol.ID) {
}
func (rh *RoutedHost) NewStream(ctx context.Context, p peer.ID, pids ...protocol.ID) (inet.Stream, error) {
// check if we need to find some addresses for the peer through the routing system
if len(rh.Network().ConnsToPeer(p)) == 0 && len(rh.Peerstore().Addrs(p)) == 0 {
addrs, err := rh.findPeerAddrs(ctx, p)
if err != nil {
return nil, err
}
rh.Peerstore().AddAddrs(p, addrs, pstore.TempAddrTTL)
// Ensure we have a connection, with peer addresses resolved by the routing system (#207)
// It is not sufficient to let the underlying host connect, it will most likely not have
// any addresses for the peer without any prior connections.
err := rh.Connect(ctx, pstore.PeerInfo{ID: p})
if err != nil {
return nil, err
}
return rh.host.NewStream(ctx, p, pids...)
......
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