@@ -58,6 +58,7 @@ type Runner struct {
58
58
Signals []os.Signal
59
59
ConnState func (net.Conn , http.ConnState )
60
60
61
+ err error
61
62
done chan struct {}
62
63
shut * OnceRunner
63
64
stop * OnceRunner
@@ -145,6 +146,7 @@ func (r *Runner) Stop() { r.shut.Run() }
145
146
func (r * Runner ) runShutdown () { r .Shutdown (context .Background ()) }
146
147
func (r * Runner ) runStopfs () {
147
148
defer close (r .done )
149
+ r .logShutdown ()
148
150
for i := len (r .stopfs ) - 1 ; i >= 0 ; i -- {
149
151
r .stopfs [i ].Run ()
150
152
}
@@ -176,48 +178,49 @@ func (r *Runner) startServer(certFile, keyFile string) {
176
178
panic ("Runner: Server.Handler is nil" )
177
179
}
178
180
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 )
182
183
} 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 )
184
185
}
185
186
186
187
go r .handleSignals (r .done )
187
188
188
189
var isTLS bool
189
190
if certFile != "" && keyFile != "" {
190
191
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 ) {
194
195
isTLS = true
195
196
}
196
197
197
- var err error
198
198
if isTLS {
199
- err = server .ListenAndServeTLS (certFile , keyFile )
199
+ r . err = r . Server .ListenAndServeTLS (certFile , keyFile )
200
200
} else {
201
- err = server .ListenAndServe ()
201
+ r . err = r . Server .ListenAndServe ()
202
202
}
203
203
204
204
r .Stop ()
205
205
<- r .done
206
+ }
206
207
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 )
210
213
} else {
211
214
r .infof ("The HTTP Server [%s] listening on %s is shutdown" ,
212
- name , server .Addr )
215
+ r . Name , r . Server .Addr )
213
216
}
214
217
} else {
215
- if name == "" {
218
+ if r . Name == "" {
216
219
r .errorf ("The HTTP Server listening on %s is shutdown: %s" ,
217
- server . Addr , err )
220
+ r . Server . Addr , r . err )
218
221
} else {
219
222
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 )
221
224
}
222
225
}
223
226
}
0 commit comments