Improve readability of getClosestPeers method.
Also remove older useless code.
Jeromy committed
Dec 29, 2014 at 18:22 UTC
b4c6c874229ada3131ccdd4cc70f30e2cd404658
1 file changed
+9
-11
routing/dht/routing.go
+9
-11
@@ -40,7 +40,7 @@ func (dht *IpfsDHT) PutValue(ctx context.Context, key u.Key, value []byte) error
40
return err
41
}
42
43
- pchan, err := dht.getClosestPeers(ctx, key, KValue)
43
+ pchan, err := dht.getClosestPeers(ctx, key)
44
if err != nil {
45
return err
46
}
@@ -116,11 +116,11 @@ func (dht *IpfsDHT) GetValue(ctx context.Context, key u.Key) ([]byte, error) {
116
// Provide makes this node announce that it can provide a value for the given key
117
func (dht *IpfsDHT) Provide(ctx context.Context, key u.Key) error {
118
119
- log.Event(ctx, "Provide Value start", &key)
120
- defer log.Event(ctx, "Provide Value end", &key)
119
+ log.Event(ctx, "provideBegin", &key)
120
+ defer log.Event(ctx, "provideEnd", &key)
121
dht.providers.AddProvider(key, dht.self)
122
123
- peers, err := dht.getClosestPeers(ctx, key, KValue)
123
+ peers, err := dht.getClosestPeers(ctx, key)
124
if err != nil {
125
return err
126
}
@@ -149,14 +149,16 @@ func (dht *IpfsDHT) FindProviders(ctx context.Context, key u.Key) ([]peer.PeerIn
149
return providers, nil
150
}
151
152
-func (dht *IpfsDHT) getClosestPeers(ctx context.Context, key u.Key, count int) (<-chan peer.ID, error) {
152
+// Kademlia 'node lookup' operation. Returns a channel of the K closest peers
153
+// to the given key
154
+func (dht *IpfsDHT) getClosestPeers(ctx context.Context, key u.Key) (<-chan peer.ID, error) {
155
tablepeers := dht.routingTable.NearestPeers(kb.ConvertKey(key), AlphaValue)
156
if len(tablepeers) == 0 {
157
return nil, kb.ErrLookupFailure
158
}
159
158
- out := make(chan peer.ID, count)
159
- peerset := pset.NewLimited(count)
160
+ out := make(chan peer.ID, KValue)
161
+ peerset := pset.NewLimited(KValue)
162
163
for _, p := range tablepeers {
164
select {
@@ -211,10 +213,6 @@ func (dht *IpfsDHT) closerPeersSingle(ctx context.Context, key u.Key, p peer.ID)
213
for _, pbp := range pmes.GetCloserPeers() {
214
pid := peer.ID(pbp.GetId())
215
dht.peerstore.AddAddresses(pid, pbp.Addresses())
214
- err := dht.ensureConnectedToPeer(ctx, pid)
215
- if err != nil {
216
- return nil, err
217
- }
216
out = append(out, pid)
217
}
218
return out, nil