@cryptotaxi247 / kubo / commits / b4c6c8742

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