@cryptotaxi247 / kubo / commits / ea9ea7945

feat(gcr/c) randomize order of remotes

Brian Tiger Chow committed Jan 28, 2015 at 20:41 UTC ea9ea79459abbb637f3b3fab0bba8bf0accc26bf
1 file changed +6 -2
routing/grandcentral/proxy/standard.go
+6 -2
@@ -1,6 +1,8 @@
1 package proxy
2
3 import (
4 + "math/rand"
5 +
6 context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
7 ggio "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/gogoprotobuf/io"
8 host "github.com/jbenet/go-ipfs/p2p/host"
@@ -36,7 +38,8 @@ func (p *standard) HandleStream(s inet.Stream) {
38
39 func (px *standard) SendMessage(ctx context.Context, m *dhtpb.Message) error {
40 var err error
39 - for _, remote := range px.Remotes {
41 + for _, i := range rand.Perm(len(px.Remotes)) {
42 + remote := px.Remotes[i]
43 if err = px.sendMessage(ctx, m, remote); err != nil { // careful don't re-declare err!
44 continue
45 }
@@ -63,7 +66,8 @@ func (px *standard) sendMessage(ctx context.Context, m *dhtpb.Message, remote pe
66
67 func (px *standard) SendRequest(ctx context.Context, m *dhtpb.Message) (*dhtpb.Message, error) {
68 var err error
66 - for _, remote := range px.Remotes {
69 + for _, i := range rand.Perm(len(px.Remotes)) {
70 + remote := px.Remotes[i]
71 var reply *dhtpb.Message
72 reply, err = px.sendRequest(ctx, m, remote) // careful don't redeclare err!
73 if err != nil {