From 2da598da0aa1e00308301e69547b3be0f3029536 Mon Sep 17 00:00:00 2001 From: Eric Gusmao Date: Fri, 3 Apr 2026 13:23:37 -0300 Subject: [PATCH] use ListenConfig for StartConfig listeners --- server.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/server.go b/server.go index ff2136fec..d012be0d6 100644 --- a/server.go +++ b/server.go @@ -4,6 +4,7 @@ package echo import ( + "cmp" stdContext "context" "crypto/tls" "errors" @@ -117,19 +118,17 @@ func (sc StartConfig) start(ctx stdContext.Context, h http.Handler) error { listener := sc.Listener if listener == nil { - listenerNetwork := sc.ListenerNetwork - if listenerNetwork == "" { - listenerNetwork = "tcp" - } - var err error - if sc.TLSConfig != nil { - listener, err = tls.Listen(listenerNetwork, sc.Address, sc.TLSConfig) - } else { - listener, err = net.Listen(listenerNetwork, sc.Address) - } + listenerNetwork := cmp.Or(sc.ListenerNetwork, "tcp") + + ln, err := (&net.ListenConfig{}).Listen(ctx, listenerNetwork, sc.Address) if err != nil { return err } + listener = ln + + if sc.TLSConfig != nil { + listener = tls.NewListener(listener, sc.TLSConfig) + } } if sc.ListenerAddrFunc != nil {