1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-26 23:53:19 +08:00

feat(dht/message) add PeerRoutingInfo

This commit is contained in:
Brian Tiger Chow
2015-01-27 22:57:39 -08:00
parent 1beef957da
commit 35a5fa6f6f

View File

@ -10,6 +10,11 @@ import (
var log = eventlog.Logger("dht.pb") var log = eventlog.Logger("dht.pb")
type PeerRoutingInfo struct {
peer.PeerInfo
inet.Connectedness
}
// NewMessage constructs a new dht message with given type, key, and level // NewMessage constructs a new dht message with given type, key, and level
func NewMessage(typ Message_MessageType, key string, level int) *Message { func NewMessage(typ Message_MessageType, key string, level int) *Message {
m := &Message{ m := &Message{
@ -20,6 +25,20 @@ func NewMessage(typ Message_MessageType, key string, level int) *Message {
return m return m
} }
func peerRoutingInfoToPBPeer(p PeerRoutingInfo) *Message_Peer {
pbp := new(Message_Peer)
pbp.Addrs = make([][]byte, len(p.Addrs))
for i, maddr := range p.Addrs {
pbp.Addrs[i] = maddr.Bytes() // Bytes, not String. Compressed.
}
s := string(p.ID)
pbp.Id = &s
c := ConnectionType(p.Connectedness)
pbp.Connection = &c
return pbp
}
func peerInfoToPBPeer(p peer.PeerInfo) *Message_Peer { func peerInfoToPBPeer(p peer.PeerInfo) *Message_Peer {
pbp := new(Message_Peer) pbp := new(Message_Peer)
@ -63,6 +82,14 @@ func PeerInfosToPBPeers(n inet.Network, peers []peer.PeerInfo) []*Message_Peer {
return pbps return pbps
} }
func PeerRoutingInfosToPBPeers(peers []PeerRoutingInfo) []*Message_Peer {
pbpeers := make([]*Message_Peer, len(peers))
for i, p := range peers {
pbpeers[i] = peerRoutingInfoToPBPeer(p)
}
return pbpeers
}
// PBPeersToPeerInfos converts given []*Message_Peer into []peer.PeerInfo // PBPeersToPeerInfos converts given []*Message_Peer into []peer.PeerInfo
// Invalid addresses will be silently omitted. // Invalid addresses will be silently omitted.
func PBPeersToPeerInfos(pbps []*Message_Peer) []peer.PeerInfo { func PBPeersToPeerInfos(pbps []*Message_Peer) []peer.PeerInfo {