aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-04-14 19:57:39 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-04-14 19:57:39 +0100
commit885e6e824642de79e80e8b5e97ea320b6f582d6d (patch)
treed2a09baf10736f9862f58b8c2382cb5049b70744 /server
parenteb1f21bfff2d32858af632450a18d7f661ee0c3a (diff)
downloadcoredns-885e6e824642de79e80e8b5e97ea320b6f582d6d.tar.gz
coredns-885e6e824642de79e80e8b5e97ea320b6f582d6d.tar.zst
coredns-885e6e824642de79e80e8b5e97ea320b6f582d6d.zip
Allow more than 1 address for transfer (#121)
No reason why not to allow more then one address: `transfer to 127.0.0.1 10.240.20.1`. Fix startup as well, as it turned out to be broken...
Diffstat (limited to 'server')
-rw-r--r--server/server.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/server/server.go b/server/server.go
index c562cb01e..765d42cce 100644
--- a/server/server.go
+++ b/server/server.go
@@ -163,17 +163,20 @@ 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)
+ // defer close(s.startChan) // Don't understand why defer wouldn't actually work in this method.
if err != nil {
+ close(s.startChan)
return err
}
l, err := net.Listen("tcp", s.Addr)
if err != nil {
+ close(s.startChan)
return err
}
pc, err := net.ListenPacket("udp", s.Addr)
if err != nil {
+ close(s.startChan)
return err
}
@@ -187,6 +190,7 @@ func (s *Server) ListenAndServe() error {
go func() {
s.server[0].ActivateAndServe()
}()
+ close(s.startChan)
return s.server[1].ActivateAndServe()
}