From b8bf99e08245f8090319db73dbedeb3c8b662086 Mon Sep 17 00:00:00 2001
From: Mechiel Lukkien <mechiel@ueber.net>
Date: Mon, 13 Jan 2025 10:43:55 +0100
Subject: [PATCH] ensure kind "acme-tls-alpn-01" is registered on the http
 handler

previous code couldn't possibly be triggered by my reading.

encountered during PR #255
---
 http/web.go | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/http/web.go b/http/web.go
index 447a2d7..dc0111d 100644
--- a/http/web.go
+++ b/http/web.go
@@ -596,12 +596,13 @@ func portServes(l config.Listener) map[int]*serve {
 
 		if https && l.TLS.ACME != "" {
 			s.TLSConfig = l.TLS.ACMEConfig
-		} else if https {
-			s.TLSConfig = l.TLS.Config
-			if l.TLS.ACME != "" {
-				tlsport := config.Port(mox.Conf.Static.ACME[l.TLS.ACME].Port, 443)
+
+			tlsport := config.Port(mox.Conf.Static.ACME[l.TLS.ACME].Port, 443)
+			if portServe[tlsport] == nil || !slices.Contains(portServe[tlsport].Kinds, "acme-tls-alpn-01") {
 				ensureServe(true, tlsport, "acme-tls-alpn-01", false)
 			}
+		} else if https {
+			s.TLSConfig = l.TLS.Config
 		}
 		return s
 	}