Failed startup was not flagged (#118)

The error propagation from srv.ListenAndServe did not work as intended,
simplified it a bit and added a test for it.
This commit is contained in:
Miek Gieben
2016-04-13 20:13:55 +01:00
parent c3f8bb3735
commit 5a8a125399
3 changed files with 23 additions and 4 deletions

View File

@@ -163,8 +163,8 @@ func (s *Server) Serve(ln ListenerFile) error {
// ListenAndServe starts the server with a new listener. It blocks until the server stops.
func (s *Server) ListenAndServe() error {
err := s.setup()
defer close(s.startChan)
if err != nil {
close(s.startChan)
return err
}
@@ -187,8 +187,6 @@ func (s *Server) ListenAndServe() error {
go func() {
s.server[0].ActivateAndServe()
}()
close(s.startChan) // unblock anyone waiting for this to start listening
return s.server[1].ActivateAndServe()
}