simplify http serve

Kim committed Mar 4, 2026 at 12:22 UTC 350aa79cd17703129f6d5e32320d7612d6c899b3
1 file changed +11 -35
cmd/relay-server/serve.go
+11 -35
@@ -126,45 +126,21 @@ func serveAPI(addr string, serv *portal.RelayServer, admin *Admin, frontend *Fro
126 ReadHeaderTimeout: 5 * time.Second,
127 TLSNextProto: make(map[string]func(*http.Server, *tls.Conn, http.Handler)),
128 }
129 - rootHost := types.PortalRootHost(flagPortalURL)
129 acmeManager := serv.GetACMEManager()
131 - if acmeManager != nil && rootHost != "" {
132 - srv.TLSConfig = &tls.Config{
133 - GetCertificate: func(hello *tls.ClientHelloInfo) (*tls.Certificate, error) {
134 - if hello == nil {
135 - return nil, errors.New("missing TLS client hello")
136 - }
137 -
138 - serverName := strings.TrimSpace(strings.ToLower(hello.ServerName))
139 - if serverName != "" && !strings.EqualFold(serverName, rootHost) {
140 - return nil, fmt.Errorf("acme certificate is only served for portal root host %q", rootHost)
141 - }
142 -
143 - certFile, keyFile := acmeManager.TLSFiles()
144 - if certFile == "" || keyFile == "" {
145 - return nil, errors.New("acme certificate files are not ready")
146 - }
147 -
148 - cert, err := tls.LoadX509KeyPair(certFile, keyFile)
149 - if err != nil {
150 - return nil, fmt.Errorf("load acme certificate: %w", err)
151 - }
152 - return &cert, nil
153 - },
154 - }
155 - } else if acmeManager != nil && rootHost == "" {
156 - log.Warn().Msg("[server] portal root host is empty; ACME TLS disabled for admin/API listener")
130 + srv.TLSConfig = &tls.Config{
131 + GetCertificate: func(hello *tls.ClientHelloInfo) (*tls.Certificate, error) {
132 + certFile, keyFile := acmeManager.TLSFiles()
133 + cert, err := tls.LoadX509KeyPair(certFile, keyFile)
134 + if err != nil {
135 + return nil, fmt.Errorf("load acme certificate: %w", err)
136 + }
137 + return &cert, nil
138 + },
139 }
140
141 go func() {
160 - var err error
161 - if srv.TLSConfig != nil {
162 - log.Info().Str("addr", addr).Str("root_host", rootHost).Msg("[server] https api enabled via ACME")
163 - err = srv.ListenAndServeTLS("", "")
164 - } else {
165 - log.Info().Str("addr", addr).Msgf("[server] http api enabled")
166 - err = srv.ListenAndServe()
167 - }
142 + log.Info().Str("addr", addr).Msg("[server] https api enabled via ACME")
143 + err := srv.ListenAndServeTLS("", "")
144 if err != nil && err != http.ErrServerClosed {
145 log.Error().Err(err).Msg("[server] http error")
146 cancel()