X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/04666c2304ea7700243756cfb0278cc139e969ce..5f41a89121dea9d536ea33391ae2827432db947b:/lib/service/cmd.go diff --git a/lib/service/cmd.go b/lib/service/cmd.go index b5e395bec8..20441c2a6c 100644 --- a/lib/service/cmd.go +++ b/lib/service/cmd.go @@ -147,9 +147,10 @@ func (c *command) RunCommand(prog string, args []string, stdin io.Reader, stdout instrumented := httpserver.Instrument(reg, log, httpserver.HandlerWithDeadline(cluster.API.RequestTimeout.Duration(), httpserver.AddRequestIDs( - httpserver.LogRequests( - interceptHealthReqs(cluster.ManagementToken, handler.CheckHealth, - httpserver.NewRequestLimiter(cluster.API.MaxConcurrentRequests, handler, reg)))))) + httpserver.Inspect(reg, cluster.ManagementToken, + httpserver.LogRequests( + interceptHealthReqs(cluster.ManagementToken, handler.CheckHealth, + httpserver.NewRequestLimiter(cluster.API.MaxConcurrentRequests, handler, reg))))))) srv := &httpserver.Server{ Server: http.Server{ Handler: ifCollectionInHost(instrumented, instrumented.ServeAPI(cluster.ManagementToken, instrumented)), @@ -158,7 +159,7 @@ func (c *command) RunCommand(prog string, args []string, stdin io.Reader, stdout Addr: listenURL.Host, } if listenURL.Scheme == "https" || listenURL.Scheme == "wss" { - tlsconfig, err := tlsConfigWithCertUpdater(cluster, logger) + tlsconfig, err := makeTLSConfig(cluster, logger) if err != nil { logger.WithError(err).Errorf("cannot start %s service on %s", c.svcName, listenURL.String()) return 1 @@ -273,7 +274,19 @@ func getListenAddr(svcs arvados.Services, prog arvados.ServiceName, log logrus.F // intermediate proxy/routing) listenURL = internalURL } - listener, err := net.Listen("tcp", listenURL.Host) + listenAddr := listenURL.Host + if _, _, err := net.SplitHostPort(listenAddr); err != nil { + // url "https://foo.example/" (with no + // explicit port name/number) means listen on + // the well-known port for the specified + // protocol, "foo.example:https". + port := listenURL.Scheme + if port == "ws" || port == "wss" { + port = "http" + port[2:] + } + listenAddr = net.JoinHostPort(listenAddr, port) + } + listener, err := net.Listen("tcp", listenAddr) if err == nil { listener.Close() return listenURL, internalURL, nil