diff options
| author | chrislusf <chris.lu@gmail.com> | 2015-06-24 09:50:41 -0700 |
|---|---|---|
| committer | chrislusf <chris.lu@gmail.com> | 2015-06-24 09:50:41 -0700 |
| commit | 3b2645979de34795908ba6ca2d8d94a087d1619c (patch) | |
| tree | 0aa6b3491639ee6d6e7a84d49b0df4670bd6e59c /go | |
| parent | 418878edce063ed0826777450b3ffb5d838241c5 (diff) | |
| download | seaweedfs-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.go | 10 |
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()) } |
