From e0d8259d9882270f60dfdd36e8268dbe570877ac Mon Sep 17 00:00:00 2001 From: chrislusf Date: Thu, 12 Feb 2015 14:34:05 -0800 Subject: [PATCH] Randomize http redirect. Randomize http redirect. Also remove unnecessary empty string checking. --- go/weed/weed_server/master_server_handlers_admin.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/go/weed/weed_server/master_server_handlers_admin.go b/go/weed/weed_server/master_server_handlers_admin.go index 62605f331..d0a898987 100644 --- a/go/weed/weed_server/master_server_handlers_admin.go +++ b/go/weed/weed_server/master_server_handlers_admin.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io/ioutil" + "math/rand" "net/http" "strconv" "strings" @@ -122,11 +123,7 @@ func (ms *MasterServer) redirectHandler(w http.ResponseWriter, r *http.Request) } machines := ms.Topo.Lookup("", volumeId) if machines != nil && len(machines) > 0 { - url := machines[0].PublicUrl - if url == "" { - url = machines[0].Url() - } - http.Redirect(w, r, "http://"+url+r.URL.Path, http.StatusMovedPermanently) + http.Redirect(w, r, "http://"+machines[rand.Intn(len(machines))].PublicUrl+r.URL.Path, http.StatusMovedPermanently) } else { writeJsonError(w, r, http.StatusNotFound, fmt.Errorf("volume id %d not found.", volumeId)) }