Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 06bc124

Browse files
committedNov 19, 2015
if bucket doesnt have enough peers, grab more elsewhere
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
1 parent 5f8cfc9 commit 06bc124

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed
 

‎routing/kbucket/sorting.go

-4
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ func copyPeersFromList(target ID, peerArr peerSorterArr, peerList *list.List) pe
3232
distance: xor(target, pID),
3333
}
3434
peerArr = append(peerArr, &pd)
35-
if e == nil {
36-
log.Debug("list element was nil")
37-
return peerArr
38-
}
3935
}
4036
return peerArr
4137
}

‎routing/kbucket/table.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,10 @@ func (rt *RoutingTable) NearestPeers(id ID, count int) []peer.ID {
155155
bucket = rt.Buckets[cpl]
156156

157157
var peerArr peerSorterArr
158-
if bucket.Len() == 0 {
159-
// In the case of an unusual split, one bucket may be empty.
160-
// if this happens, search both surrounding buckets for nearest peer
158+
peerArr = copyPeersFromList(id, peerArr, bucket.list)
159+
if len(peerArr) < count {
160+
// In the case of an unusual split, one bucket may be short or empty.
161+
// if this happens, search both surrounding buckets for nearby peers
161162
if cpl > 0 {
162163
plist := rt.Buckets[cpl-1].list
163164
peerArr = copyPeersFromList(id, peerArr, plist)
@@ -167,8 +168,6 @@ func (rt *RoutingTable) NearestPeers(id ID, count int) []peer.ID {
167168
plist := rt.Buckets[cpl+1].list
168169
peerArr = copyPeersFromList(id, peerArr, plist)
169170
}
170-
} else {
171-
peerArr = copyPeersFromList(id, peerArr, bucket.list)
172171
}
173172

174173
// Sort by distance to local peer

0 commit comments

Comments
 (0)
Please sign in to comment.