aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
authorchrislusf <chris.lu@gmail.com>2015-06-24 09:50:41 -0700
committerchrislusf <chris.lu@gmail.com>2015-06-24 09:50:41 -0700
commit3b2645979de34795908ba6ca2d8d94a087d1619c (patch)
tree0aa6b3491639ee6d6e7a84d49b0df4670bd6e59c /go
parent418878edce063ed0826777450b3ffb5d838241c5 (diff)
downloadseaweedfs-3b2645979de34795908ba6ca2d8d94a087d1619c.tar.xz
seaweedfs-3b2645979de34795908ba6ca2d8d94a087d1619c.zip
Use request host info for master url if possible
Fix https://github.com/chrislusf/seaweedfs/issues/148
Diffstat (limited to 'go')
-rw-r--r--go/weed/weed_server/master_server_handlers_admin.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/go/weed/weed_server/master_server_handlers_admin.go b/go/weed/weed_server/master_server_handlers_admin.go
index 64c64d1e8..8530e71dd 100644
--- a/go/weed/weed_server/master_server_handlers_admin.go
+++ b/go/weed/weed_server/master_server_handlers_admin.go
@@ -129,9 +129,15 @@ func (ms *MasterServer) redirectHandler(w http.ResponseWriter, r *http.Request)
}
}
+func (ms *MasterServer) selfUrl(r *http.Request) string {
+ if r.Host != "" {
+ return r.Host
+ }
+ return "localhost:" + strconv.Itoa(ms.port)
+}
func (ms *MasterServer) submitFromMasterServerHandler(w http.ResponseWriter, r *http.Request) {
if ms.Topo.IsLeader() {
- submitForClientHandler(w, r, "localhost:"+strconv.Itoa(ms.port))
+ submitForClientHandler(w, r, ms.selfUrl(r))
} else {
masterUrl, err := ms.Topo.Leader()
if err != nil {
@@ -144,7 +150,7 @@ func (ms *MasterServer) submitFromMasterServerHandler(w http.ResponseWriter, r *
func (ms *MasterServer) deleteFromMasterServerHandler(w http.ResponseWriter, r *http.Request) {
if ms.Topo.IsLeader() {
- deleteForClientHandler(w, r, "localhost:"+strconv.Itoa(ms.port))
+ deleteForClientHandler(w, r, ms.selfUrl(r))
} else {
deleteForClientHandler(w, r, ms.Topo.RaftServer.Leader())
}