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