@cryptotaxi247 / kubo / commits / 35a5fa6f6

feat(dht/message) add PeerRoutingInfo

Brian Tiger Chow committed Jan 27, 2015 at 22:57 UTC 35a5fa6f6f00bee166a0998a8928d1d544b9d4f7
1 file changed +27
routing/dht/pb/message.go
+27
@@ -10,6 +10,11 @@ import (
10
11 var log = eventlog.Logger("dht.pb")
12
13 +type PeerRoutingInfo struct {
14 + peer.PeerInfo
15 + inet.Connectedness
16 +}
17 +
18 // NewMessage constructs a new dht message with given type, key, and level
19 func NewMessage(typ Message_MessageType, key string, level int) *Message {
20 m := &Message{
@@ -20,6 +25,20 @@ func NewMessage(typ Message_MessageType, key string, level int) *Message {
25 return m
26 }
27
28 +func peerRoutingInfoToPBPeer(p PeerRoutingInfo) *Message_Peer {
29 + pbp := new(Message_Peer)
30 +
31 + pbp.Addrs = make([][]byte, len(p.Addrs))
32 + for i, maddr := range p.Addrs {
33 + pbp.Addrs[i] = maddr.Bytes() // Bytes, not String. Compressed.
34 + }
35 + s := string(p.ID)
36 + pbp.Id = &s
37 + c := ConnectionType(p.Connectedness)
38 + pbp.Connection = &c
39 + return pbp
40 +}
41 +
42 func peerInfoToPBPeer(p peer.PeerInfo) *Message_Peer {
43 pbp := new(Message_Peer)
44
@@ -63,6 +82,14 @@ func PeerInfosToPBPeers(n inet.Network, peers []peer.PeerInfo) []*Message_Peer {
82 return pbps
83 }
84
85 +func PeerRoutingInfosToPBPeers(peers []PeerRoutingInfo) []*Message_Peer {
86 + pbpeers := make([]*Message_Peer, len(peers))
87 + for i, p := range peers {
88 + pbpeers[i] = peerRoutingInfoToPBPeer(p)
89 + }
90 + return pbpeers
91 +}
92 +
93 // PBPeersToPeerInfos converts given []*Message_Peer into []peer.PeerInfo
94 // Invalid addresses will be silently omitted.
95 func PBPeersToPeerInfos(pbps []*Message_Peer) []peer.PeerInfo {