aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
authorMohanson <mohanson@outlook.com>2015-12-25 16:32:50 +0800
committerMohanson <mohanson@outlook.com>2015-12-25 16:32:50 +0800
commit3c9ef6245ec212711a4588fd094828f1e6aa81fd (patch)
tree4eb8d9779d8f2b853de6ca3bb7390099ded3320c /go
parent7ae7029154bff1a64dd5976a48c244dbdc591e35 (diff)
downloadseaweedfs-3c9ef6245ec212711a4588fd094828f1e6aa81fd.tar.xz
seaweedfs-3c9ef6245ec212711a4588fd094828f1e6aa81fd.zip
fix bug : master cann't redirect urlquery string
There is a bug that master can not redirect urlquery to slave volumn. so i fix it, and it run good now.
Diffstat (limited to 'go')
-rw-r--r--go/weed/weed_server/master_server_handlers_admin.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/go/weed/weed_server/master_server_handlers_admin.go b/go/weed/weed_server/master_server_handlers_admin.go
index fb2b18983..7893a5765 100644
--- a/go/weed/weed_server/master_server_handlers_admin.go
+++ b/go/weed/weed_server/master_server_handlers_admin.go
@@ -123,7 +123,13 @@ func (ms *MasterServer) redirectHandler(w http.ResponseWriter, r *http.Request)
}
machines := ms.Topo.Lookup("", volumeId)
if machines != nil && len(machines) > 0 {
- http.Redirect(w, r, util.NormalizeUrl(machines[rand.Intn(len(machines))].PublicUrl)+r.URL.Path, http.StatusMovedPermanently)
+ var url string
+ if r.URL.RawQuery != "" {
+ url = util.NormalizeUrl(machines[rand.Intn(len(machines))].PublicUrl) + r.URL.Path + "?" + r.URL.RawQuery
+ } else {
+ url = util.NormalizeUrl(machines[rand.Intn(len(machines))].PublicUrl) + r.URL.Path
+ }
+ http.Redirect(w, r, url, http.StatusMovedPermanently)
} else {
writeJsonError(w, r, http.StatusNotFound, fmt.Errorf("volume id %d not found", volumeId))
}