Randomize http redirect.

Randomize http redirect.
Also remove unnecessary empty string checking.
This commit is contained in:
chrislusf 2015-02-12 14:34:05 -08:00
parent be35ec63cb
commit e0d8259d98

View File

@ -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))
}