dial: validate peer id
This commit is contained in:
parent
b1c198df1d
commit
27adabf1b9
@ -20,7 +20,8 @@ const CName = "net.peerservice"
|
|||||||
var log = logger.NewNamed(CName)
|
var log = logger.NewNamed(CName)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrAddrsNotFound = errors.New("addrs for peer not found")
|
ErrAddrsNotFound = errors.New("addrs for peer not found")
|
||||||
|
ErrPeerIdMismatched = errors.New("peerId mismatched")
|
||||||
)
|
)
|
||||||
|
|
||||||
func New() PeerService {
|
func New() PeerService {
|
||||||
@ -79,6 +80,13 @@ func (p *peerService) Dial(ctx context.Context, peerId string) (pr peer.Peer, er
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
connPeerId, err := peer.CtxPeerId(mc.Context())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if connPeerId != peerId {
|
||||||
|
return nil, ErrPeerIdMismatched
|
||||||
|
}
|
||||||
return peer.NewPeer(mc, p.server)
|
return peer.NewPeer(mc, p.server)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user