diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/caddyhttp/caddyhttp.go | 5 | ||||
-rw-r--r-- | modules/caddyhttp/server.go | 16 |
2 files changed, 21 insertions, 0 deletions
diff --git a/modules/caddyhttp/caddyhttp.go b/modules/caddyhttp/caddyhttp.go index 1ff2cbc..0fde218 100644 --- a/modules/caddyhttp/caddyhttp.go +++ b/modules/caddyhttp/caddyhttp.go @@ -188,6 +188,11 @@ func (app *App) automaticHTTPS() error { continue } + // skip if all listeners use the HTTP port + if !srv.listenersUseAnyPortOtherThan(app.HTTPPort) { + continue + } + // find all qualifying domain names, de-duplicated domainSet := make(map[string]struct{}) for _, route := range srv.Routes { diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go index c66fcab..8a16cea 100644 --- a/modules/caddyhttp/server.go +++ b/modules/caddyhttp/server.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "log" + "net" "net/http" "strconv" @@ -98,6 +99,21 @@ func (s *Server) executeCompositeRoute(w http.ResponseWriter, r *http.Request, s return err } +func (s *Server) listenersUseAnyPortOtherThan(otherPort int) bool { + for _, lnAddr := range s.Listen { + _, addrs, err := parseListenAddr(lnAddr) + if err == nil { + for _, a := range addrs { + _, port, err := net.SplitHostPort(a) + if err == nil && port != strconv.Itoa(otherPort) { + return true + } + } + } + } + return false +} + type httpErrorConfig struct { Routes RouteList `json:"routes,omitempty"` // TODO: some way to configure the logging of errors, probably? standardize |