@cryptotaxi247 / kubo / commits / a6851fa55

Made routing code pass golint.

Chas Leichner committed Aug 16, 2014 at 23:48 UTC a6851fa55b48078c41c5607d63ac5bcb592a9adc
7 files changed +39 -34
routing/dht/dht_test.go
+2 -2
@@ -180,7 +180,7 @@ func TestProvides(t *testing.T) {
180 t.Fatal(err)
181 }
182
183 - err = dhts[3].PutLocal(u.Key("hello"), []byte("world"))
183 + err = dhts[3].putLocal(u.Key("hello"), []byte("world"))
184 if err != nil {
185 t.Fatal(err)
186 }
@@ -225,7 +225,7 @@ func TestLayeredGet(t *testing.T) {
225 t.Fatal(err)
226 }
227
228 - err = dhts[3].PutLocal(u.Key("hello"), []byte("world"))
228 + err = dhts[3].putLocal(u.Key("hello"), []byte("world"))
229 if err != nil {
230 t.Fatal(err)
231 }
routing/dht/diag.go
+1 -1
@@ -36,7 +36,7 @@ func (dht *IpfsDHT) getDiagInfo() *diagInfo {
36 di.LifeSpan = time.Since(dht.birth)
37 di.Keys = nil // Currently no way to query datastore
38
39 - for _, p := range dht.routingTables[0].Listpeers() {
39 + for _, p := range dht.routingTables[0].ListPeers() {
40 di.Connections = append(di.Connections, connDiagInfo{p.GetLatency(), p.ID})
41 }
42 return di
routing/dht/ext_test.go
+4 -4
@@ -105,9 +105,9 @@ func TestGetFailures(t *testing.T) {
105 t.Fatal(err)
106 }
107
108 - resp := DHTMessage{
108 + resp := Message{
109 Type: pmes.GetType(),
110 - Id: pmes.GetId(),
110 + ID: pmes.GetId(),
111 Response: true,
112 Success: false,
113 }
@@ -140,10 +140,10 @@ func TestGetFailures(t *testing.T) {
140 })
141
142 // Now we test this DHT's handleGetValue failure
143 - req := DHTMessage{
143 + req := Message{
144 Type: PBDHTMessage_GET_VALUE,
145 Key: "hello",
146 - Id: GenerateMessageID(),
146 + ID: GenerateMessageID(),
147 Value: []byte{0},
148 }
149 fn.Chan.Incoming <- swarm.NewMessage(other, req.ToProtobuf())
routing/kbucket/bucket.go
+1 -1
@@ -68,7 +68,7 @@ func (b *Bucket) Split(cpl int, target ID) *Bucket {
68 newbuck.list = out
69 e := b.list.Front()
70 for e != nil {
71 - peerID := convertPeerID(e.Value.(*peer.Peer).ID)
71 + peerID := ConvertPeerID(e.Value.(*peer.Peer).ID)
72 peerCPL := prefLen(peerID, target)
73 if peerCPL > cpl {
74 cur := e
routing/kbucket/table.go
+10 -7
@@ -28,7 +28,8 @@ type RoutingTable struct {
28 bucketsize int
29 }
30
31 -func newRoutingTable(bucketsize int, localID ID, latency time.Duration) *RoutingTable {
31 +// NewRoutingTable creates a new routing table with a given bucketsize, local ID, and latency tolerance.
32 +func NewRoutingTable(bucketsize int, localID ID, latency time.Duration) *RoutingTable {
33 rt := new(RoutingTable)
34 rt.Buckets = []*Bucket{newBucket()}
35 rt.bucketsize = bucketsize
@@ -42,7 +43,7 @@ func newRoutingTable(bucketsize int, localID ID, latency time.Duration) *Routing
43 func (rt *RoutingTable) Update(p *peer.Peer) *peer.Peer {
44 rt.tabLock.Lock()
45 defer rt.tabLock.Unlock()
45 - peerID := convertPeerID(p.ID)
46 + peerID := ConvertPeerID(p.ID)
47 cpl := xor(peerID, rt.local).commonPrefixLen()
48
49 bucketID := cpl
@@ -108,7 +109,7 @@ func (p peerSorterArr) Less(a, b int) bool {
109 func copyPeersFromList(target ID, peerArr peerSorterArr, peerList *list.List) peerSorterArr {
110 for e := peerList.Front(); e != nil; e = e.Next() {
111 p := e.Value.(*peer.Peer)
111 - pID := convertPeerID(p.ID)
112 + pID := ConvertPeerID(p.ID)
113 pd := peerDistance{
114 p: p,
115 distance: xor(target, pID),
@@ -124,7 +125,7 @@ func copyPeersFromList(target ID, peerArr peerSorterArr, peerList *list.List) pe
125
126 // Find a specific peer by ID or return nil
127 func (rt *RoutingTable) Find(id peer.ID) *peer.Peer {
127 - srch := rt.NearestPeers(convertPeerID(id), 1)
128 + srch := rt.NearestPeers(ConvertPeerID(id), 1)
129 if len(srch) == 0 || !srch[0].ID.Equal(id) {
130 return nil
131 }
@@ -190,8 +191,9 @@ func (rt *RoutingTable) Size() int {
191 return tot
192 }
193
194 +// ListPeers takes a RoutingTable and returns a list of all peers from all buckets in the table.
195 // NOTE: This is potentially unsafe... use at your own risk
194 -func (rt *RoutingTable) listPeers() []*peer.Peer {
196 +func (rt *RoutingTable) ListPeers() []*peer.Peer {
197 var peers []*peer.Peer
198 for _, buck := range rt.Buckets {
199 for e := buck.getIter(); e != nil; e = e.Next() {
@@ -201,10 +203,11 @@ func (rt *RoutingTable) listPeers() []*peer.Peer {
203 return peers
204 }
205
204 -func (rt *RoutingTable) print() {
206 +// Print prints a descriptive statement about the provided RoutingTable
207 +func (rt *RoutingTable) Print() {
208 fmt.Printf("Routing Table, bs = %d, Max latency = %d\n", rt.bucketsize, rt.maxLatency)
209 rt.tabLock.RLock()
207 - peers := rt.listPeers()
210 + peers := rt.ListPeers()
211 for i, p := range peers {
212 fmt.Printf("%d) %s %s\n", i, p.ID.Pretty(), p.GetLatency().String())
213 }
routing/kbucket/table_test.go
+14 -14
@@ -36,7 +36,7 @@ func TestBucket(t *testing.T) {
36 }
37
38 local := _randPeer()
39 - localID := convertPeerID(local.ID)
39 + localID := ConvertPeerID(local.ID)
40
41 i := rand.Intn(len(peers))
42 e := b.find(peers[i].ID)
@@ -44,10 +44,10 @@ func TestBucket(t *testing.T) {
44 t.Errorf("Failed to find peer: %v", peers[i])
45 }
46
47 - spl := b.Split(0, convertPeerID(local.ID))
47 + spl := b.Split(0, ConvertPeerID(local.ID))
48 llist := b.list
49 for e := llist.Front(); e != nil; e = e.Next() {
50 - p := convertPeerID(e.Value.(*peer.Peer).ID)
50 + p := ConvertPeerID(e.Value.(*peer.Peer).ID)
51 cpl := xor(p, localID).commonPrefixLen()
52 if cpl > 0 {
53 t.Fatalf("Split failed. found id with cpl > 0 in 0 bucket")
@@ -56,7 +56,7 @@ func TestBucket(t *testing.T) {
56
57 rlist := spl.list
58 for e := rlist.Front(); e != nil; e = e.Next() {
59 - p := convertPeerID(e.Value.(*peer.Peer).ID)
59 + p := ConvertPeerID(e.Value.(*peer.Peer).ID)
60 cpl := xor(p, localID).commonPrefixLen()
61 if cpl == 0 {
62 t.Fatalf("Split failed. found id with cpl == 0 in non 0 bucket")
@@ -67,7 +67,7 @@ func TestBucket(t *testing.T) {
67 // Right now, this just makes sure that it doesnt hang or crash
68 func TestTableUpdate(t *testing.T) {
69 local := _randPeer()
70 - rt := newRoutingTable(10, convertPeerID(local.ID), time.Hour)
70 + rt := NewRoutingTable(10, ConvertPeerID(local.ID), time.Hour)
71
72 peers := make([]*peer.Peer, 100)
73 for i := 0; i < 100; i++ {
@@ -93,7 +93,7 @@ func TestTableUpdate(t *testing.T) {
93
94 func TestTableFind(t *testing.T) {
95 local := _randPeer()
96 - rt := newRoutingTable(10, convertPeerID(local.ID), time.Hour)
96 + rt := NewRoutingTable(10, ConvertPeerID(local.ID), time.Hour)
97
98 peers := make([]*peer.Peer, 100)
99 for i := 0; i < 5; i++ {
@@ -102,7 +102,7 @@ func TestTableFind(t *testing.T) {
102 }
103
104 t.Logf("Searching for peer: '%s'", peers[2].ID.Pretty())
105 - found := rt.NearestPeer(convertPeerID(peers[2].ID))
105 + found := rt.NearestPeer(ConvertPeerID(peers[2].ID))
106 if !found.ID.Equal(peers[2].ID) {
107 t.Fatalf("Failed to lookup known node...")
108 }
@@ -110,7 +110,7 @@ func TestTableFind(t *testing.T) {
110
111 func TestTableFindMultiple(t *testing.T) {
112 local := _randPeer()
113 - rt := newRoutingTable(20, convertPeerID(local.ID), time.Hour)
113 + rt := NewRoutingTable(20, ConvertPeerID(local.ID), time.Hour)
114
115 peers := make([]*peer.Peer, 100)
116 for i := 0; i < 18; i++ {
@@ -119,7 +119,7 @@ func TestTableFindMultiple(t *testing.T) {
119 }
120
121 t.Logf("Searching for peer: '%s'", peers[2].ID.Pretty())
122 - found := rt.NearestPeers(convertPeerID(peers[2].ID), 15)
122 + found := rt.NearestPeers(ConvertPeerID(peers[2].ID), 15)
123 if len(found) != 15 {
124 t.Fatalf("Got back different number of peers than we expected.")
125 }
@@ -130,7 +130,7 @@ func TestTableFindMultiple(t *testing.T) {
130 // and set GOMAXPROCS above 1
131 func TestTableMultithreaded(t *testing.T) {
132 local := peer.ID("localPeer")
133 - tab := newRoutingTable(20, convertPeerID(local), time.Hour)
133 + tab := NewRoutingTable(20, ConvertPeerID(local), time.Hour)
134 var peers []*peer.Peer
135 for i := 0; i < 500; i++ {
136 peers = append(peers, _randPeer())
@@ -167,8 +167,8 @@ func TestTableMultithreaded(t *testing.T) {
167
168 func BenchmarkUpdates(b *testing.B) {
169 b.StopTimer()
170 - local := convertKey("localKey")
171 - tab := newRoutingTable(20, local, time.Hour)
170 + local := ConvertKey("localKey")
171 + tab := NewRoutingTable(20, local, time.Hour)
172
173 var peers []*peer.Peer
174 for i := 0; i < b.N; i++ {
@@ -183,8 +183,8 @@ func BenchmarkUpdates(b *testing.B) {
183
184 func BenchmarkFinds(b *testing.B) {
185 b.StopTimer()
186 - local := convertKey("localKey")
187 - tab := newRoutingTable(20, local, time.Hour)
186 + local := ConvertKey("localKey")
187 + tab := NewRoutingTable(20, local, time.Hour)
188
189 var peers []*peer.Peer
190 for i := 0; i < b.N; i++ {
routing/kbucket/util.go
+7 -5
@@ -76,21 +76,23 @@ func equalizeSizes(a, b ID) (ID, ID) {
76 return a, b
77 }
78
79 -func convertPeerID(id peer.ID) ID {
79 +// ConvertPeerID creates a DHT ID by hashing a Peer ID (Multihash)
80 +func ConvertPeerID(id peer.ID) ID {
81 hash := sha256.Sum256(id)
82 return hash[:]
83 }
84
84 -func convertKey(id u.Key) ID {
85 +// ConvertKey creates a DHT ID by hashing a local key (String)
86 +func ConvertKey(id u.Key) ID {
87 hash := sha256.Sum256([]byte(id))
88 return hash[:]
89 }
90
91 // Closer returns true if a is closer to key than b is
92 func Closer(a, b peer.ID, key u.Key) bool {
91 - aid := convertPeerID(a)
92 - bid := convertPeerID(b)
93 - tgt := convertKey(key)
93 + aid := ConvertPeerID(a)
94 + bid := ConvertPeerID(b)
95 + tgt := ConvertKey(key)
96 adist := xor(aid, tgt)
97 bdist := xor(bid, tgt)
98