From 2783f02790967aa7a163030f9fe7fcf0b42e078a Mon Sep 17 00:00:00 2001 From: Alvaro Saurin Date: Fri, 1 May 2015 10:53:16 +0200 Subject: [PATCH] Make Stop() idempotent --- nameserver/server.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/nameserver/server.go b/nameserver/server.go index f2bc6d99..c26bc63b 100644 --- a/nameserver/server.go +++ b/nameserver/server.go @@ -232,14 +232,21 @@ func (s *DNSServer) Status() string { // Perform a graceful shutdown func (s *DNSServer) Stop() error { // Stop the listeners/handlers - if err := s.tcpSrv.Shutdown(); err != nil { - return err + if s.tcpSrv != nil { + if err := s.tcpSrv.Shutdown(); err != nil { + return err + } + s.lst.Close() + s.tcpSrv = nil } - if err := s.udpSrv.Shutdown(); err != nil { - return err + if s.udpSrv != nil { + if err := s.udpSrv.Shutdown(); err != nil { + return err + } + s.pc.Close() + s.udpSrv = nil } s.listenersWg.Wait() - return nil }