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) { ...@@ -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) { 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 // Ensure we have a connection, with peer addresses resolved by the routing system (#207)
if len(rh.Network().ConnsToPeer(p)) == 0 && len(rh.Peerstore().Addrs(p)) == 0 { // It is not sufficient to let the underlying host connect, it will most likely not have
addrs, err := rh.findPeerAddrs(ctx, p) // any addresses for the peer without any prior connections.
if err != nil { err := rh.Connect(ctx, pstore.PeerInfo{ID: p})
return nil, err if err != nil {
} return nil, err
rh.Peerstore().AddAddrs(p, addrs, pstore.TempAddrTTL)
} }
return rh.host.NewStream(ctx, p, pids...) 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