diff options
| author | chrislusf <chris.lu@gmail.com> | 2015-02-12 14:34:05 -0800 |
|---|---|---|
| committer | chrislusf <chris.lu@gmail.com> | 2015-02-12 14:34:05 -0800 |
| commit | e0d8259d9882270f60dfdd36e8268dbe570877ac (patch) | |
| tree | 32ce85a598ee234186c20c18ffc6e5711f004c9b | |
| parent | be35ec63cb3d2c866164938b1dd063137080ff47 (diff) | |
| download | seaweedfs-e0d8259d9882270f60dfdd36e8268dbe570877ac.tar.xz seaweedfs-e0d8259d9882270f60dfdd36e8268dbe570877ac.zip | |
Randomize http redirect.
Randomize http redirect.
Also remove unnecessary empty string checking.
| -rw-r--r-- | go/weed/weed_server/master_server_handlers_admin.go | 7 |
1 files 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)) } |
