55 "context"
66 "crypto/tls"
77 "crypto/x509"
8+ "errors"
89 "fmt"
910 "net/http"
1011 "os"
@@ -155,30 +156,30 @@ func main() {
155156 }
156157
157158 go func () {
158- if cert .TLSEnabled (& cfg .HTTP .TLS ) {
159- logger .Info (
160- ctx ,
161- loggingProvider ,
162- "starting server" ,
163- log.KeyValue {Key : "address" , Value : log .StringValue (cfg .HTTP .Address )},
164- log.KeyValue {Key : "tls_enabled" , Value : log .BoolValue (true )},
165- )
166- if err := server .ListenAndServeTLS ("" , "" ); err != nil {
167- logger .Error (ctx , loggingProvider , err .Error ())
168- os .Exit (1 )
169- }
159+ tlsEnabled := cert .TLSEnabled (& cfg .HTTP .TLS )
160+ logger .Info (
161+ ctx ,
162+ loggingProvider ,
163+ "starting server" ,
164+ log.KeyValue {Key : "address" , Value : log .StringValue (cfg .HTTP .Address )},
165+ log.KeyValue {Key : "tls_enabled" , Value : log .BoolValue (tlsEnabled )},
166+ )
167+
168+ if tlsEnabled {
169+ err = server .ListenAndServeTLS ("" , "" )
170170 } else {
171- logger .Info (
171+ err = server .ListenAndServe ()
172+ }
173+
174+ if err != nil && ! errors .Is (err , http .ErrServerClosed ) {
175+ logger .Error (
172176 ctx ,
173177 loggingProvider ,
174- "starting server" ,
178+ err . Error () ,
175179 log.KeyValue {Key : "address" , Value : log .StringValue (cfg .HTTP .Address )},
176- log.KeyValue {Key : "tls_enabled" , Value : log .BoolValue (false )},
180+ log.KeyValue {Key : "tls_enabled" , Value : log .BoolValue (tlsEnabled )},
177181 )
178- if err := server .ListenAndServe (); err != nil {
179- logger .Error (ctx , loggingProvider , err .Error ())
180- os .Exit (1 )
181- }
182+ os .Exit (1 )
182183 }
183184 }()
184185
@@ -190,6 +191,6 @@ func main() {
190191 shutdownCtx , cancel := context .WithTimeout (context .Background (), cfg .TimeoutShutdown )
191192 defer cancel ()
192193 if err := server .Shutdown (shutdownCtx ); err != nil {
193- logger .Error (ctx , loggingProvider , fmt .Sprintf ("http close error: %v" , err ))
194+ logger .Error (ctx , loggingProvider , fmt .Sprintf ("http close error: %v" , err ), log. KeyValue { Key : "address" , Value : log . StringValue ( cfg . HTTP . Address )} )
194195 }
195196}
0 commit comments