From 73bb9322f5052ef3e94d1fdf1c506a112b2a5ad4 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Fri, 18 Dec 2020 12:55:12 +0000 Subject: [PATCH] rc: prefer actual listener address if using ":port" or "addr:0" only Before this change rclone would turn `localhost:8888` into `127.0.0.1:8888` which apparently does not work with some browsers. See: https://github.com/rclone/rclone-webui-react/issues/117 --- cmd/serve/httplib/httplib.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/serve/httplib/httplib.go b/cmd/serve/httplib/httplib.go index a5d6b2618..d8f5ff962 100644 --- a/cmd/serve/httplib/httplib.go +++ b/cmd/serve/httplib/httplib.go @@ -379,8 +379,10 @@ func (s *Server) URL() string { proto = "https" } addr := s.Opt.ListenAddr - if s.listener != nil { - // prefer actual listener address; required if using 0-port + // prefer actual listener address if using ":port" or "addr:0" + useActualAddress := addr == "" || addr[0] == ':' || addr[len(addr)-1] == ':' || strings.HasSuffix(addr, ":0") + if s.listener != nil && useActualAddress { + // use actual listener address; required if using 0-port // (i.e. port assigned by operating system) addr = s.listener.Addr().String() }