From 3b2645979de34795908ba6ca2d8d94a087d1619c Mon Sep 17 00:00:00 2001 From: chrislusf Date: Wed, 24 Jun 2015 09:50:41 -0700 Subject: [PATCH] Use request host info for master url if possible Fix https://github.com/chrislusf/seaweedfs/issues/148 --- go/weed/weed_server/master_server_handlers_admin.go | 10 ++++++++-- 1 file 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()) }