diff options
author | 2016-04-14 19:57:39 +0100 | |
---|---|---|
committer | 2016-04-14 19:57:39 +0100 | |
commit | 885e6e824642de79e80e8b5e97ea320b6f582d6d (patch) | |
tree | d2a09baf10736f9862f58b8c2382cb5049b70744 /server | |
parent | eb1f21bfff2d32858af632450a18d7f661ee0c3a (diff) | |
download | coredns-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.go | 6 |
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() } |