make NewStream run FindPeer if no addresses found
This commit is contained in:
parent
01be69d391
commit
90fa929051
|
@ -100,6 +100,14 @@ func (rh *RoutedHost) SetStreamHandler(pid protocol.ID, handler inet.StreamHandl
|
||||||
rh.host.SetStreamHandler(pid, handler)
|
rh.host.SetStreamHandler(pid, handler)
|
||||||
}
|
}
|
||||||
func (rh *RoutedHost) NewStream(pid protocol.ID, p peer.ID) (inet.Stream, error) {
|
func (rh *RoutedHost) NewStream(pid protocol.ID, p peer.ID) (inet.Stream, error) {
|
||||||
|
if len(rh.Peerstore().Addrs(p)) < 1 {
|
||||||
|
ctx, _ := context.WithTimeout(context.TODO(), time.Second*30)
|
||||||
|
pi, err := rh.route.FindPeer(ctx, p)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
rh.Peerstore().AddAddrs(p, pi.Addrs, peer.TempAddrTTL)
|
||||||
|
}
|
||||||
return rh.host.NewStream(pid, p)
|
return rh.host.NewStream(pid, p)
|
||||||
}
|
}
|
||||||
func (rh *RoutedHost) Close() error {
|
func (rh *RoutedHost) Close() error {
|
||||||
|
|
Loading…
Reference in New Issue