Skip to content

Commit 94a123b

Browse files
committed
fix the shutdown log when the runner is stopped
1 parent 0cdc5b0 commit 94a123b

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

runner.go

+20-17
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type Runner struct {
5858
Signals []os.Signal
5959
ConnState func(net.Conn, http.ConnState)
6060

61+
err error
6162
done chan struct{}
6263
shut *OnceRunner
6364
stop *OnceRunner
@@ -145,6 +146,7 @@ func (r *Runner) Stop() { r.shut.Run() }
145146
func (r *Runner) runShutdown() { r.Shutdown(context.Background()) }
146147
func (r *Runner) runStopfs() {
147148
defer close(r.done)
149+
r.logShutdown()
148150
for i := len(r.stopfs) - 1; i >= 0; i-- {
149151
r.stopfs[i].Run()
150152
}
@@ -176,48 +178,49 @@ func (r *Runner) startServer(certFile, keyFile string) {
176178
panic("Runner: Server.Handler is nil")
177179
}
178180

179-
name, server := r.Name, r.Server
180-
if name == "" {
181-
r.infof("The HTTP Server is running on %s", server.Addr)
181+
if r.Name == "" {
182+
r.infof("The HTTP Server is running on %s", r.Server.Addr)
182183
} else {
183-
r.infof("The HTTP Server [%s] is running on %s", name, server.Addr)
184+
r.infof("The HTTP Server [%s] is running on %s", r.Name, r.Server.Addr)
184185
}
185186

186187
go r.handleSignals(r.done)
187188

188189
var isTLS bool
189190
if certFile != "" && keyFile != "" {
190191
isTLS = true
191-
} else if server.TLSConfig != nil &&
192-
(len(server.TLSConfig.Certificates) > 0 ||
193-
server.TLSConfig.GetCertificate != nil) {
192+
} else if r.Server.TLSConfig != nil &&
193+
(len(r.Server.TLSConfig.Certificates) > 0 ||
194+
r.Server.TLSConfig.GetCertificate != nil) {
194195
isTLS = true
195196
}
196197

197-
var err error
198198
if isTLS {
199-
err = server.ListenAndServeTLS(certFile, keyFile)
199+
r.err = r.Server.ListenAndServeTLS(certFile, keyFile)
200200
} else {
201-
err = server.ListenAndServe()
201+
r.err = r.Server.ListenAndServe()
202202
}
203203

204204
r.Stop()
205205
<-r.done
206+
}
206207

207-
if err == nil || err == http.ErrServerClosed {
208-
if name == "" {
209-
r.infof("The HTTP Server listening on %s is shutdown", server.Addr)
208+
func (r *Runner) logShutdown() {
209+
if r.err == nil || r.err == http.ErrServerClosed {
210+
if r.Name == "" {
211+
r.infof("The HTTP Server listening on %s is shutdown",
212+
r.Server.Addr)
210213
} else {
211214
r.infof("The HTTP Server [%s] listening on %s is shutdown",
212-
name, server.Addr)
215+
r.Name, r.Server.Addr)
213216
}
214217
} else {
215-
if name == "" {
218+
if r.Name == "" {
216219
r.errorf("The HTTP Server listening on %s is shutdown: %s",
217-
server.Addr, err)
220+
r.Server.Addr, r.err)
218221
} else {
219222
r.errorf("The HTTP Server [%s] listening on %s is shutdown: %s",
220-
name, server.Addr, err)
223+
r.Name, r.Server.Addr, r.err)
221224
}
222225
}
223226
}

0 commit comments

Comments
 (0)